EvenChan's Ops.

Kubernetes 平滑移除节点

字数统计: 267阅读时长: 1 min
2020/10/23

如果你想从Kubernetes集群中删除节点,正确流程如下:

获取节点列表

1
kubectl get node

设置不可调度

由于节点目前处于正常工作状态,集群中新建资源还是有可能创建到该节点的,所以先将节点设置为不可调度:

1
kubectl cordon $node_name

将节点上资源调度到其他节点

目前集群已经不会分配新的资源在该节点上了,但是节点还运行着现有的业务,所以我们需要将节点上的业务分配到其他节点:

1
kubectl drain $node_name

注意:DaemonSet Pod 和 Static Pod 是不会在集群中其他节点重建的。

移除节点

当前集群中已经没有任何资源分配在节点上了,那么我们可以直接移除节点:

1
kubectl delete $node_name

至此,我们平滑移除了一个 k8s 节点。如果移除的是一个 master 节点,那么记得之后还要添加一个新的 master 节点到集群中,避免集群可靠性降低。

CATALOG
  1. 1. 获取节点列表
  2. 2. 设置不可调度
  3. 3. 将节点上资源调度到其他节点
  4. 4. 移除节点