设置节点为不可调度
由于节点当前可能正在运行一些Pod,为了防止新的Pod被调度到该节点上,需要先将节点设置为不可调度状态:
kubectl cordon <node-name>
3. 驱逐节点上的Pod
接下来,需要将节点上现有的Pod驱逐到其他节点上。注意,DaemonSet Pod和Static Pod不会被驱逐到其他节点。可以使用以下命令来驱逐Pod:
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
其中,--ignore-daemonsets
参数表示忽略DaemonSet管理的Pod,--delete-emptydir-data
参数表示如果Pod使用emptyDir卷,则允许删除这些卷中的数据。
4. 删除节点
在确保节点上没有任何资源在运行后,可以删除该节点:
kubectl delete nodes <node-name>