节点的驱逐和封锁

最近更新时间:2019-04-12 19:01:11

封锁(cordon)节点

封锁节点后,将不接受新的 Pod 调度到该节点,需要手动取消封锁的节点。

方法一

在新增节点时在高级设置中勾选封锁节点,用于先进行业务所需的初始化操作。

方法二

在节点列表页对选中节点进行封锁

取消封锁(uncordon)节点

取消封锁节点后,将允许新的 Pod 调度到该节点。

方法一

在新增节点时的脚本中添加取消封锁的命令。
如下,执行完成您的自定义命令后,再执行 kubectl uncordon 的命令即可取消封锁节点。

#!/bin/sh
# your initialization script
echo "hello world!"


# If you set unschedulable when you create a node, 
# after executing your initialization script, 
# use the following command to make the node schedulable.
node=`ifconfig eth0 | grep inet | awk '{print $2}' | tr -d "addr:"`
#echo ${node}
kubectl uncordon ${node} --kubeconfig=/root/.kube/config

方法二

在节点列表页对已封锁的节点进行取消封锁

驱逐(drain)节点

驱逐可以用于在节点上执行维护之前安全地从节点中逐出 Pod,节点驱逐后,将会把节点内的所有 Pod(不包含 DaemonSet 管理的 Pod)从节点中驱逐到集群内其他节点,并将节点设置为封锁状态。对应 kubectl 的 drain 命令。

注意:
本地存储的 Pod 被驱逐后数据将丢失,请谨慎操作。

操作方法

在节点列表页对需要维护的节点进行驱逐操作。