Taint(污點(diǎn))和 Toleration(容忍)可以作用于 node 和 pod 上,其目的是優(yōu)化 pod 在集群間的調(diào)度,這跟節(jié)點(diǎn)親和性類似,只不過(guò)它們作用的方式相反,具有 taint 的 node 和 pod 是互斥關(guān)系,而具有節(jié)點(diǎn)親和性關(guān)系的 node 和 pod 是相吸的。另外還有可以給 node 節(jié)點(diǎn)設(shè)置 label,通過(guò)給 pod 設(shè)置 nodeSelector 將 pod 調(diào)度到具有匹配標(biāo)簽的節(jié)點(diǎn)上。
橋西網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),橋西網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為橋西上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的橋西做網(wǎng)站的公司定做!
Taint 和 toleration 相互配合,可以用來(lái)避免 pod 被分配到不合適的節(jié)點(diǎn)上。每個(gè)節(jié)點(diǎn)上都可以應(yīng)用一個(gè)或多個(gè) taint ,這表示對(duì)于那些不能容忍這些 taint 的 pod,是不會(huì)被該節(jié)點(diǎn)接受的。如果將 toleration 應(yīng)用于 pod 上,則表示這些 pod 可以(但不要求)被調(diào)度到具有相應(yīng) taint 的節(jié)點(diǎn)上。
NoSchedule: 一定不能被調(diào)度
PreferNoSchedule: 盡量不要調(diào)度
NoExecute: 不僅不會(huì)調(diào)度, 還會(huì)驅(qū)逐Node上已有的Pod
kubectl taint nodes node1 key1=value1:NoSchedule
kubectl taint nodes node1 key1=value1:NoExecute
kubectl taint nodes node1 key2=value2:NoSchedule
kubectl describe node node1
kubectl taint node node1 key1:NoSchedule- # 這里的key可以不用指定value
kubectl taint node node1 key1:NoExecute-
kubectl taint node node1 key1- # 刪除指定key所有的effect
kubectl taint node node1 key2:NoSchedule-
詳細(xì)使用方法請(qǐng)參考
配置污點(diǎn)
kubectl taint nodes 172.16.8.100 node-role.kubernetes.io/etcd=true:NoExecute node-role.kubernetes.io/controlplane=true:NoSchedule