强制删除pod
kubectl delete pod prometheus-k8s-1 -n monitoring --force --grace-period=0
删除一个Label,只需在命令行最后指定Label的key名并与一个减号相连即可:
$ kubectl label nodes 1.1.1.1 role-
修改一个Label的值,需要加上–overwrite参数:
$ kubectl label nodes 1.1.1.1 role=apache --overwrite
设置污点:
kubectl taint nodes 10.1.241.161 node=prometheus:NoSchedule
kubectl taint nodes 10.1.241.159 node=prometheus:NoSchedule
设置标签:
kubectl label nodes 10.1.241.161 node=prometheus
kubectl label nodes 10.1.241.159 node=prometheus
查看节点的污点:
kubectl describe node 10.1.241.159 |grep “Taints”
查看节点的标签:
kubectl get node --show-labels
给master节点设置label
kubectl label nodes 10.19.12.14 node-role.kubernetes.io/master=true
master节点设置taint
[root@k8s-master01 ~]# kubectl taint nodes k8s-master01 node-role.kubernetes.io/master=:NoSchedule
[root@k8s-master02 ~]# kubectl taint nodes k8s-master02 node-role.kubernetes.io/master=:NoSchedule
[root@k8s-master03 ~]# kubectl taint nodes k8s-master03 node-role.kubernetes.io/master=:NoSchedule
删除被驱逐的pod
kubectl get pods | grep Evicted | awk ‘{print $1}’ | xargs kubectl delete pod
###备注
污点和标签类似,但是节点一旦设置了污点,如果不容忍污点,pod就不会调度上来
1、设置taint
NoSchedule: 一定不能被调度
PreferNoSchedule: 尽量不要调度
NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
kubectl taint nodes node1 key1=value1:NoSchedule
kubectl taint nodes node1 key1=value1:NoExecute
kubectl taint nodes node1 key2=value2:NoSchedule
2、查看taint
kubectl describe node node1
3、删除taint:
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-