1、labels相关
# 添加
~]# kubectl label node cn-hongkong.172.16.0.179 node-prod=jobs
node/cn-hongkong.172.16.0.179 labeled
# 删除
~]# kubectl label node cn-hongkong.172.16.0.179 node-prod-
node/cn-hongkong.172.16.0.179 unlabeled
# 查看
~]# kubectl get pods -n namespace --show-labels
kubectl get nodes --show-labels |grep node-prod
pod中添加亲和性
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-prod
operator: In
values:
- jobs
2、tolerations相关
#添加
kubectl taint nodes <node-name> specialnode=true:NoSchedule
~]# kubectl taint nodes cn-hongkong.172.16.0.179 jobsnode=true:NoSchedule
node/cn-hongkong.172.16.0.179 tainted
# 删除
kubectl taint nodes cn-hongkong.172.16.0.179 jobsnode-
node/cn-hongkong.172.16.0.179 unlabeled
# 覆盖添加
~]# kubectl taint nodes cn-hongkong.172.16.0.179 jobsnode=true:NoSchedule --overwrite
node/cn-hongkong.172.16.0.179 modified
# 查看所有节点及其污点信息
~]# kubectl get nodes -o custom-columns="NODE:metadata.name, TAINTS:.spec.taints"
NODE TAINTS
cn-hongkong.172.16.0.179 [map[effect:NoSchedule key:jobsnode value:true]]
cn-hongkong.172.16.0.180 <none>
cn-hongkong.172.16.0.70 <none>
创建 Pod 以容忍污点:要使 Pod 能够在带有特定污点的节点上运行,需要在 Pod 的 spec 中添加 tolerations 字段
spec:
tolerations:
- key: jobsnode
operator: Exists
effect: NoSchedule