用途
用于下线异常节点、集群缩容等
操作步骤
1. 查看节点名称
先确认节点的名称
kubectl get node -o wide
2. 设置节点不可调度
设置节点不可调度状态,禁止新的pod调度到该节点上
kubectl cordon ${node_name}
3. 剔除节点上运行的pod(生产环境慎用,建议手动逐一迁移)
剔除,除了daemonsets类型的工作负载,生产环境建议手动迁移pod。防止大规模集群抖动影响业务
kubectl drain --ignore-daemonsets ${node_name}
4. 删除节点
确认节点是否还有pod
for i in $(kubectl get ns|grep -v Name|awk '{print $1}');do kubectl get pod -o wide -n ${i}| grep ${node_name};done
确认无pod后,删除节点
kubectl delete node ${node_name}
还需要在rancher页面上把节点删除