kubernetes之namespace与node绑定

使用PodNodeSelector准入控制器
更多请查看官网文档:https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/
借鉴https://note.youdao.com/ynoteshare1/index.html?id=8f76e3f54970d1a0c5e0ef199dccee99&type=note

一 plugin方式

1、修改kube-apiserver配置文件,找到--enable-admission-plugins=参数,添加PodNodeSelector参数
–enable-admission-plugins=PodNodeSelector
这里–enable-admission-plugins的value 可以是一个[]string也就是说可以多个逗号隔开
2、修改指定命名空间内容

kubectl edit ns default

apiVersion: v1
kind: Namespace
metadata:
 name: default
 annotations: # 增加
   scheduler.alpha.kubernetes.io/node-selector: env=test # 增加
spec: {}
status: {}
完成这些步骤之后,在此命名空间中创建的所有pod都会自动添加以下部分:
nodeSelector
  env: test
3、给node打标签
kubectl label node k8s-node01 env=test
4、接下来只要是在default空间下创建的pod都会被分配到node1节点

二 label方式

这里只说一下思路
1.在node上面可以打标签 同一的3
2.在部署deploy的时候手动使用nodeselector来锁定node 可以根据ns来选择不同的node 取决于标签内容
3.也就是说我们在做标签的时候可以打 label 为 ns=default 来简单明了

三 两种方式对比

k8s默认提供了一些插件 但是有些插件默认不启用,那么就需要我们手动启用比如一方式在master的配置文件中启用 plugin
但是如果我们是托管k8s master不可见这时候只能选择第二种方式,当然方式可能还有很多

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容