1、 kubernetes集群POD调度策略
-
(1) 、 NoSchedule: 一定不能被调度
-
(2) 、 PreferNoSchedule: 尽量不要调度
-
(3) 、 NoExecute:不仅不会调度,还会驱逐Node上已有的Pod
2、 将master节点设置为可调度POD,即去除污点
kubectl describe node 192.168.1.12 # 查看节点 Taints 值
kubectl taint node 192.168.1.12 node-role.kubernetes.io/master-
# 执行结果
[root@192 kubeadm]# kubectl taint node 192.168.1.12 node- role.kubernetes.io/master-
node/192.168.1.12 untainted
3、 将master节点设置为不可调度POD,即设置为污点
kubectl taint node 192.168.1.12 node-role.kubernetes.io/master=:NoSchedule
# 执行结果
[root@192 kubeadm]# kubectl taint node 192.168.1.12 node-role.kubernetes.io/master=:NoSchedule
node/192.168.1.12 tainted
4、 驱逐已经运行的POD容器
kubectl drain --ignore-daemonsets 192.168.1.13
5、 k8s集群node打污点,不被调度
kubectl cordon 192.168.1.13
# kubectl taint nodes 192.168.1.13 node.kubernetes.io/unschedulable=:NoSchedule
6、 k8s集群node去除污点
kubectl uncordon 192.168.1.13
# kubectl taint nodes 192.168.1.13 node.kubernetes.io/unschedulable:NoSchedule-
7、 将POD调度到指定工作节点的三种方法
第一:先创建label名称,再在deploy配置关联label名称
kubectl label node 192.168.1.13 l earn. org/ rol e=onl i ne # 创建 label
kubectl label node 192.168.1.13 learn.org/role- # 删除 label
kubectl get node 192.168.1.13 --show-labels #查看节所有标签
# nodeSelecto r 为已创建 label
spec:
nodeSelector:
learn.org/role: online
第二:nodeSelector配置为节点hostname
spec:
nodeSelector:
kubernetes.io/hostname: 192.168.1.13
第三:nodeName配置为节点IP
spec:
nodeName: 192.168.1.13











网友评论