问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Kubernetes集群节点移除完全指南:工作节点与控制平面节点的删除步骤

创作时间:
作者:
@小白创作中心

Kubernetes集群节点移除完全指南:工作节点与控制平面节点的删除步骤

引用
CSDN
1.
https://blog.csdn.net/peng2hui1314/article/details/140822667

Kubernetes集群管理中一个重要的操作是从集群中删除节点。无论是需要替换旧节点,还是节点出现故障,都必须遵循正确的流程以避免数据丢失或应用程序中断。本文将详细介绍如何安全地从Kubernetes集群中移除工作节点和控制平面节点。

移除工作节点(Worker Node)

移除工作节点相对简单。工作节点又称为子节点或从节点。

确定工作节点名称

首先获取所有节点的名称,并确认要移除的节点:

kubectl get nodes

驱逐工作节点上的Pod

使用kubectl drain命令驱逐节点上的Pod:

kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data

参数说明:

  • --ignore-daemonsets:忽略DaemonSet管理的Pod。
  • --delete-emptydir-data:删除emptyDir卷中的数据。
  • --force:强制删除(可能导致数据丢失,请谨慎使用)。

排空过程:

  1. 将节点标记为不可调度(ReadySchedulingDisabled)。
  2. 逐个终止节点上的Pod(除了DaemonSet的Pod)。
  3. Kubernetes调度器会在集群的其他节点上重新创建这些Pod。

恢复节点调度能力的命令:

kubectl uncordon <node-name>

重置该工作节点

在被移除的控制平面节点中操作:

kubeadm reset

kubeadm reset命令会:

  1. 停止并移除所有Kubernetes相关的容器。
  2. 移除/etc/kubernetes/目录中的所有配置文件。
  3. 移除/var/lib/kubelet/目录中的内容。
  4. 移除/var/lib/etcd目录(如果存在)。
  5. 删除Kubernetes相关的系统服务配置。

常用参数:

  • --force:即使出现错误也继续执行重置操作。

删除工作节点

从集群中删除节点:

kubectl delete node <node-name>

移除控制平面节点(Control Plane Node)

移除控制平面节点较为复杂,因为控制平面节点相当于集群的大脑。控制平面节点又称为主节点。

确定控制平面节点名称

获取所有节点的名称,并确定要删除的控制平面节点名称:

kubectl get nodes

驱逐控制平面节点上的Pod

与工作节点类似,驱逐主节点上的Pod:

kubectl drain <master-node-name> --ignore-daemonsets --delete-emptydir-data

重置移除的控制平面节点

在被移除的控制平面节点中操作:

kubeadm reset

执行过程与移除工作节点相同。

从集群中删除控制平面节点

在其他控制平面节点中操作:

kubectl delete node master3

更新 etcd 集群(可选)

从Kubernetes v1.24版本开始,kubeadm reset会自动清理控制平面节点上的etcd Stacked部署的成员。对于之前的版本,需要手动处理:

# 查看 etcd
kubectl get pods -n kube-system | grep etcd
# 登录集群的任意一个 ETCD Pod
kubectl exec -it etcd-master001 sh -n kube-system
# 设置登录 ETCD 的命令
export ETCDCTL_API=3
alias etcdctl='etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key'
# 查看集群节点列表
etcdctl member list
# 删除master3节点
etcdctl member remove ca5f1f6f780545ba

如果不从etcd中移除删除节点,可能会导致以下问题:

  • 集群不一致
  • 性能下降
  • 稳定性问题
  • 扩展性受限
  • 错误日志和告警

注意事项

  1. 确保高可用性:移除主节点前,确保集群有足够的备用主节点;移除工作节点时,确保应用支持高可用。
  2. 检查配置文件:根据安装方式(kubeadm、kops、kubespray等),可能需要额外检查和更新配置文件。
  3. 清理节点:在物理或虚拟机中移除节点前,清理Kubernetes配置和数据。
  4. 线上环境要谨慎:保持敬畏之心,保障业务系统的可用性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号