批量污点node

kubectl get nodes -o json |grep "address\""  | awk -F" " '{print $2}' | tr -d '",' | awk '{t=$0;getline;print t"\t"$0;}'  | sort | awk -F"\t" '$1~/^此处为过滤的IP条件,我是以IP的最后以为批量污点的/{split($1, a, "."); if (a[4]>177 && a[4]<228) print $2;}' | xargs -i {} kubectl taint nodes node-role.kubernetes.io="yarn:NoSchedule

以上 node-role.kubernetes.io=yarn:NoSchedule

首先,表示有了这个污点,表示不被调度,且污点的k、v是node-role.kubernetes.io=yarn

其次,如果创建的pod包含了k、v为node-role.kubernetes.io=yarn的toleration是可以调度的,表示容忍这个污点

查看所有污点node列表

先编写文件taint.tmpl

{{printf "%-50s %-12s\n" "Node" "Taint"}}
{{- range .items}}
    {{- if $taint := (index .spec "taints") }}
        {{- .metadata.name }}{{ "\t" }}
        {{- range $taint }}
            {{- .key }}={{ .value }}:{{ .effect }}{{ "\t" }}
        {{- end }}
        {{- "\n" }}
    {{- end}}
{{- end}}

执行命令

kubectl get nodes -o go-template-file=./taint.tmpl

original refer