使用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不可见这时候只能选择第二种方式,当然方式可能还有很多