关闭和重启集群

您可能需要临时关闭集群进行维护。本文介绍平稳关闭集群的流程以及如何重新启动集群。

警告

关闭集群是非常危险的操作。您必须完全了解该操作及其后果。请先进行 etcd 备份,然后再继续。通常情况下,建议您逐个维护节点,而不是重新启动整个集群。

准备工作

关闭集群

提示

  • 关闭集群前,请您务必备份 etcd 数据,以便在重新启动群集时如果遇到任何问题,可以通过 etcd 还原集群。
  • 使用本教程中的方法可以平稳关闭集群,但数据损坏的可能性仍然存在。

步骤 1:获取节点列表

  1. nodes=$(kubectl get nodes -o name)

步骤 2:关闭所有节点

  1. for node in ${nodes[@]}
  2. do
  3. echo "==== Shut down $node ===="
  4. ssh $node sudo shutdown -h 1
  5. done

然后,您可以关闭其他的集群依赖项,例如外部存储。

平稳重启集群

平稳关闭集群后,您可以平稳重启集群。

准备工作

您已平稳关闭集群。

提示

通常情况下,重新启动集群后可以继续正常使用,但是由于意外情况,该集群可能不可用。例如:

  • 关闭集群过程中 etcd 数据损坏。
  • 节点故障。
  • 不可预期的网络错误。

步骤 1:检查所有集群依赖项的状态

确保所有集群依赖项均已就绪,例如外部存储。

步骤 2:打开集群主机电源

等待集群启动并运行,这可能需要大约 10 分钟。

步骤 3:检查所有主节点的状态

检查核心组件(例如 etcd 服务)的状态,并确保一切就绪。

  1. kubectl get nodes -l node-role.kubernetes.io/master

步骤 4:检查所有工作节点的状态

  1. kubectl get nodes -l node-role.kubernetes.io/worker

如果您的集群重启失败,请尝试恢复 etcd 集群