1. 程式人生 > 實用技巧 >k8s不常用設定-禁止master排程

k8s不常用設定-禁止master排程

禁止master節點排程
有兩種方法,一種是自帶的命令(越來越完善了)另一種是通過新增汙點來禁止排程。

1、自帶命令
cordon 和 uncordon是k8s上的兩個維護命令,一般用於節點出現問題時維護使用的。

kubectl cordon master禁止節點排程
kubeclt uncordon master 允許節點排程

2、設定汙點

語法:

kubectl taint node [node] key=value[effect]
[effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ]
NoSchedule: 一定不能被排程
PreferNoSchedule: 儘量不要排程
NoExecute: 不僅不會排程, 還會驅逐Node上已有的Pod

示例:
kubectl taint node k8s-master node-role.kubernetes.io/master-允許master排程

kubectl taint nodes master node-role.kubernetes.io/master=:NoSchedule禁止master排程

kubectl describe node master |grep Taints檢視汙點

3、設定容忍master汙點
在 pod 的 spec 中設定 tolerations 欄位
tolerations:

  • key: "node-role.kubernetes.io/master"
    operator: "Equal"
    value: ""
    effect: "NoSchedule"