kubeasz K8S测试环境删除多余 node 节点

发布时间 2023-07-18 11:11:10作者: evescn

kubeasz K8S测试环境删除多余 node 节点

背景:公司之前存在3套 test 环境,有 1 套环境部署的 生产环境老系统,目前生产环境已经完成了新老系统切换,不在需要老系统 test 环境,需要进行回收

1 | 查看节点列表

使用kubectl命令来查看当前集群中的节点列表,以确认要删除的节点的名称。

kubectl get nodes

2 | 标记节点为不可调度

将要删除的节点标记为不可调度,这样Kubernetes将不会再将新的Pod调度到该节点上。

kubectl cordon <node-name>

3 | 驱逐Pods

将原本运行在该节点上的Pods调度到其他节点上。这将使得要删除的节点上的Pods有机会在其他节点上运行。

kubectl drain <node-name> --ignore-daemonsets

--ignore-daemonsets选项用于忽略DaemonSet控制器创建的Pods。

4 | 确认Pod已经全部迁移

确保已经没有Pod运行在要删除的节点上。

kubectl get pods -A -o wide | grep <node-name>

5 | 删除节点 移除节点信息

当确认节点上的Pods已经全部迁移后,可以安全地删除节点。

cd /etc/kubeasz/
kubectl get nodes

./ezctl del-node k8s <node-name>

执行上面脚本后,会一并删除集群的etcd中节点的信息

6 | 检查集群状态

确保集群状态正常,且没有影响到运行中的应用程序。