Kubernetes設置污點以及容忍

K8S集羣內有一臺212專門用來做數據庫服務器,磁盤是基於SSD。

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這臺機器上跑,同時其他服務不會調度在這臺。

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

查看節點的污點:
kubectl describe node/node_name |grep Taint

如何取消污點:
去除指定key及其effect:
kubectl taint nodes node_name key:[effect]- #(這裏的key不用指定value)

去除指定key所有的effect:
kubectl taint nodes node_name key-

deploy容忍污點:
tolerations:

  • key: "disk"
    operator: "Equal" #Equal意味着這個值等於value,如果是Exists,則不需要填寫value,只要有這個key就容忍
    value: "ssd"
    effect: "NoSchedule"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章