環境說明:
主機名 | IP地址 | CPU/內存 | 角色 | K8S版本 | Docker版本 |
k8s231 | 192.168.99.231 | 2C4G | master | 1.23.17 | 20.10.24 |
k8s232 | 192.168.99.232 | 2C4G | woker | 1.23.17 | 20.10.24 |
k8s233(需下線) | 192.168.99.233 | 2C4G | woker | 1.23.17 | 20.10.24 |
1. K8S?集群節點縮容
????????當集群中有閑置或者node因為硬件故障機其他原因需要下線時就需要對集群進行縮容
1.1?查看現有節點信息
kubectl get nodes
如圖:
? ? ? ? 可以看到當前所有部署在k8s233節點上面的Pod
1.2?驅逐 Pod?并打?SchedulingDisable?標簽,但?ds?資源創建的Pod不會驅逐
kubectl drain k8s233 --ignore-daemonsets --delete-emptydir-data
如圖:
? ? ? ? 之前k8s233節點上的資源被驅逐到其他節點上了
如圖:
????????ds資源并沒有被驅逐
1.3?查看節點被標記為禁用調度狀態
#標記當前節點不可調度Pod,那么master組件的scheduler 就不會調度到Pod當前節點
[root@k8s231 /app/manifests/sts]# kubectl get nodes
1.4給需要下線的節點打污點,驅逐已經調度到該節點的所有Pod
1.#打污點,不可調度且驅逐
kubectl taint node k8s233 school=bihuang:NoExecute2.#查看節點污點
kubectl describe nodes | grep Taints -A 2
注意:
????????kube-proxy組件貌似無法被驅逐,因為配置無視污點的屬性,所以打任何污點都無效!
1.5?下線節點重置
[root@k8s233 ~]# kubeadm reset –f[root@k8s233 ~]# rm -rf /etc/cni/net.d && iptables -F && iptables-save [root@k8s233 ~]# systemctl disable --now kubelet
1.6?刪除節點
[root@k8s231 /app/manifests/sts]# kubectl delete nodes k8s233
1.7?下線節點
節點關機
斷電
修機器
隨便操作即可