本文最后更新于134 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
namespace固定调度
参考:https://blog.csdn.net/weixin_45413603/article/details/108603138
或者参考:https://www.cnblogs.com/zhangmingcheng/p/13489790.html
背景
想实现将test下的所有pod固定到某几个Node节点,实现和pro环境分离使用node节点资源,在不使用在每个deploy挨个加nodeSelector或节点亲和的笨方法下,快速实现基于命名空间和节点绑定的方法(使用plugin插件方法)
plugin插件方法
步骤:
1、修改kube-apiserver配置文件,添加启用PodNodeSelector 插件,每个master修改(在- --enable-admission-plugins=添加一个PodNodeSelector)
[root@master01 ~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml
- --enable-admission-plugins=NodeRestriction,PodNodeSelector
2、等待所有apiserver重启完后,给对应的namespace添加标签,这标签需要和后面的node节点打的标签一致(在声明annotations:下添加scheduler.alpha.kubernetes.io/node-selector: env=test,标签是env=test)
[root@master01 ~]# kubectl edit ns test
annotations:
scheduler.alpha.kubernetes.io/node-selector: env=test
3、给对应的node节点打标签,和上面namespace一致,标签env=test
[root@master01 ~]# kubectl label node kube-node01 env=test
4、这时候所有在test空间下手动重启的pod或者新建的pod,都会被调度到和namespace绑定的节点上去
可以看到test空间下每个pod下面会自动多一个标签env=test
[root@master01 ctt]# kubectl describe po -n test nginx-sidecar-ff95f947-xmbnx|grep env
Node-Selectors: env=test