Please enable Javascript to view the contents

k8s部署实录-5-RKE节点清理指南:确保节点重新部署的顺利进行

 ·  ☕ 3 分钟

部署集群后出现异常,想重新进行部署,需要在 Kubernetes 集群中清理节点,以确保不影响重新部署。
在本篇博客中,将详细介绍如何使用 RKE(Rancher Kubernetes Engine)进行节点清理,以及确保节点重新部署的平稳进行。


引言

在 Kubernetes 集群中,节点清理是一个关键步骤,它需要在保证应用程序的稳定运行的前提下,清理节点以进行重新部署。
RKE(Rancher Kubernetes Engine)是一个用于部署和管理 Kubernetes 集群的强大工具。
在本篇博客中,将深入探讨如何使用 RKE 来清理节点,以确保重新部署过程能够顺利进行。

rke版本:v1.2.6
k8s离线包版本:v1.19.6

步骤

以下是执行节点清理操作的详细步骤:

0. 预检查

  • 该节点不应再是任何群集的成员。
  • 清理脚本具备 root/sudo 访问权限。
  • 检查该节点正在运行的容器或Pod,这些容器或Pod将在以下步骤中被强制删除(如果想保持业务应用的连续性,参考下面步骤1)。
  • 确认在正确的节点上,并准备好继续清理所有容器以及 Kubernetes 和 Rancher/RKE 特有的所有数据(如有必要,可提前备份)。

1. Drain 节点

在清理节点之前,使用 kubectl drain 命令将节点上的工作负载(Pod)驱逐到其他节点上。 确保应用程序在节点清理过程中不会受到影响。

1
kubectl drain <node-name> --ignore-daemonsets

2. 移除节点

编辑 cluster.yml 文件,将要清理的节点从 nodes 列表中删除。然后运行以下命令,使用 RKE 将节点从集群中移除。

1
rke remove --config cluster.yml

3. 清理节点

此脚本不适用于rke2和k3s(这两者使用部署时生成的uninstall脚本)
该脚本将删除与 Rancher 和 Kubernetes 有关的所有容器、卷、映像、网络接口和目录。还可以选择刷新所有 iptables 规则并删除容器镜像。

登录到要清理的节点,并执行以下清理操作:

清理脚本: extended-cleanup-rancher2.sh

执行下面命令

1
sudo bash extended-cleanup-rancher2.sh

如果需要,可以同时或单独使用可选的 -f 和 -i 标志来刷新 iptables (-f) 和删除容器映像 (-i)。

1
sudo bash extended-cleanup-rancher2.sh -f -i

4. 重启节点

重启节点以应用清理和配置更改。

5. 重新部署节点

更新 cluster.yml 文件,将节点重新添加到 nodes 列表中。然后使用 RKE 进行重新部署。

注意事项

  • 始终在执行节点清理之前备份重要数据。
  • 仔细阅读 RKE 和 Kubernetes 的文档,以确保了解每个步骤的影响和细节。
  • 执行节点清理操作时,要确保其他节点正常运行以避免服务中断。

结论

节点清理是 Kubernetes 部署过程中的关键步骤,它需要谨慎操作以确保重新部署的成功进行。通过使用 RKE 和以上步骤,可以有效地清理节点并确保应用程序的稳定运行。
在执行节点清理操作之前,始终要备份数据并确保了解每个步骤的细节,以保证整个过程的顺利进行。


可以了解如何使用 RKE 进行节点清理,以及如何在保持应用程序稳定性的前提下,重新部署节点。有利于在 Kubernetes 部署过程中更加灵活地管理节点,并确保系统的连续运行。

分享

Hex
作者
Hex
CloudNative Developer

目录