K8S集羣內有一臺212專門用來作數據庫服務器,磁盤是基於SSD。node
1.設置212污點數據庫
kubectl taint node 172.17.10.212 disk=ssd:NoSchedule
2.數據庫的deployment服務器
spec: tolerations: - key: "disk" operator: "Equal" value: "ssd" effect: "NoSchedule" nodeSelector: kubernetes.io/hostname: 172.17.10.212
這樣子數據庫就只會在212這臺機器上跑,同時其餘服務不會調度在這臺。ide
kubectl taint node [node] key=value[effect]
其中[effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ]
NoSchedule :必定不能被調度。
PreferNoSchedule:儘可能不要調度。
NoExecute:不只不會調度,還會驅逐Node上已有的Pod。code
查看節點的污點:
kubectl describe node/node_name |grep Taintkubernetes
如何取消污點:
去除指定key及其effect:
kubectl taint nodes node_name key:[effect]- #(這裏的key不用指定value)it
去除指定key全部的effect:
kubectl taint nodes node_name key-io
deploy容忍污點:
tolerations:class