【发布时间】:2021-06-21 12:16:21
【问题描述】:
使用kubeadm v1.19.9 创建的 3 个节点 Kubernetes 集群。节点是虚拟机(在 Ubuntu 20.04 上使用 KVM 管理程序)。
这个 Kubernetes 集群的用途是在 Kubernetes 上进行开发和练习。我想停止并重新启动中断的集群。与 minikube 或 microk8s 提供的 stop 和 start 命令相同。
编辑:澄清问题以避免建议的重复帖子。我正在寻找一个优雅的解决方案来停止和重新启动同一个集群。不要破坏/重置/卸载集群。
我无法从各种网络搜索中找到简单的解决方案。有一些解决方案建议拆除集群,这不是我的用例。 3 年前的答案proper shutdown of a kubernetes cluster 更接近我想要的,但这听起来很复杂。另一个解决方案How to Setup & Recover a Self-hosted Kubeadm Kubernetes Cluster After Reboot 没有很好地解释所使用的原理。
我希望现在有一个更简单的解决方案。
编辑(2021-04-11):Kubernetes 1.21 release notes:
Kubelet Graceful Node Shutdown 功能升级为 Beta 版并默认启用。
kubernetes/enhancements Graceful node shutdown #2000
增强目标(哪个目标等于哪个里程碑):
- Alpha 版本目标 (1.20)
- 测试版目标 (1.21)
- 稳定发布目标 (1.23)
【问题讨论】:
-
您应该能够停止工作虚拟机,然后停止主虚拟机。启动时,先启动master,然后启动worker。在所有 kube-system pod 都启动(coreDNS 等)之后,您的 pod 应该会启动并正常工作。你试过吗?
-
您可能希望在测试环境中执行此操作。只需备份您的 Kubernetes(遵循 k8s 文档)。从逻辑上讲,它应该可以工作。
-
当然这是一个测试环境(用于本地实验和实践)。关闭虚拟机很简单,但我不确定这是否可以。也许有一种适当的方式来优雅地终止?
-
“也许有一种适当的方式来优雅地终止” - 不是真的,但 k8s 应该能够轻松处理关闭。可能无法处理的是您运行的应用程序/容器。我有机会看到必须按顺序部署应用程序的集群,否则它们将无法启动(不要这样做)。 ansible 部署的容器,然后由脚本提供。确保容器自行启动并且不需要人工干预,您应该没问题。
-
How to Setup & Recover a Self-hosted Kubeadm Kubernetes Cluster After Reboot提到了一些脚本(附加设置),但这是由于SelfHosting。
标签: kubernetes kubeadm