kubernetes批量taint
批量污点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
Comments