我可以键入什么CLI命令以从Kubernetes集群的主节点上删除node-role.kubernetes.io/master:NoSchedule
异物?
以下命令失败:
[lnxcfg@ip-10-0-0-193 ~]$ kubectl taint nodes $(kubectl get nodes --selector=node-role.kubernetes.io/master | awk 'FNR==2{print $1}') key:node-role.kubernetes.io/master:NoSchedule-
error: invalid taint effect: node-role.kubernetes.io/master, unsupported taint effect
如下所示,我可以使用以下命令成功获取主节点的名称,该命令也嵌入在上述失败的命令中:
[lnxcfg@ip-10-0-0-193 ~]$ kubectl get nodes --selector=node-role.kubernetes.io/master | awk 'FNR==2{print $1}'
ip-10-0-0-193.us-west-2.compute.internal
这是一个AWS Linux 2节点,托管单个主Kubernetes集群的主节点。
答案 0 :(得分:2)
以下命令可用于从节点中删除污点。
kubectl taint nodes controlplane node-role.kubernetes.io/master:NoSchedule-
答案 1 :(得分:1)
kubectl taint nodes $(hostname) node-role.kubernetes.io/master:NoSchedule-
但是您也可以在主节点上进行调度,而不必去除污点:
apiVersion: extensions/v1beta1
kind: Deployment
...
spec:
...
spec:
...
tolerations:
- key: "node-role.kubernetes.io/master"
effect: "NoSchedule"
operator: "Exists"
答案 2 :(得分:1)
您可以编辑节点配置并注释异味部分。
kubectl edit node <node_name>
一旦您评论了taint json并退出。它将更新节点。
答案 3 :(得分:0)
根据文档https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#taint
这应该有效。
kubectl taint nodes $(kubectl get nodes --selector=node-role.kubernetes.io/master | awk 'FNR==2{print $1}') node-role.kubernetes.io/master-