污染Kubernetes实时集群中的节点

时间:2018-10-26 21:56:45

标签: kubernetes kubectl

如何使用YAML文件实现相同的命令,以便可以执行kubectl apply -f?下面的命令有效并且有污点,但是我无法弄清楚如何通过清单文件使用它。

$ kubectl taint nodes \
          172.4.5.2-3a1d4eeb \
          kops.k8s.io/instancegroup=loadbalancer \
          NoSchedule

2 个答案:

答案 0 :(得分:2)

使用>>选项并保存生成的YAML文件,并确保删除状态和一些其他内容,这将应用taint,但会为您提供可用于以后进行{{1 }},并将其保存到版本控制中(即使您从命令行创建资源,然后再获取yaml并应用它,它也不会重新创建资源,因此很好)

注意:大多数命令都支持>>>,这只会生成yaml而不创建资源,但是在这种情况下,我无法使其与{{1 }},可能是此命令不支持该标志。

-o yaml

然后将yaml与kubectl套用:

kubectl apply -f

答案 1 :(得分:0)

我的集群中有两个节点,请看标签

kubectl get nodes --show-labels
NAME          STATUS   ROLES   AGE    VERSION   LABELS
172.16.2.53   Ready    node    7d4h   v1.19.7   type=primary
172.16.2.89   Ready    node    33m    v1.19.7   type=secondary

假设我想用“172.16.2.89”污染节点名称

kubectl taint node 172.16.2.89  type=secondary:NoSchedule 
node/172.16.2.89 tainted

示例 -

kubectl taint node <node-name>  <label-key>=<value>:NoSchedule

我的集群中有两个节点,请看标签

<块引用>

NoExecute 表示 pod 将从节点中驱逐。

<块引用>

NoSchedule 表示调度器不会将 Pod 放到节点上