【问题标题】:Start/Stop local dev kubernetes cluster created by kubeadm (like microk8s or minikube)启动/停止由 kubeadm 创建的本地开发 kubernetes 集群(如 microk8s 或 minikube)
【发布时间】:2021-06-21 12:16:21
【问题描述】:

使用kubeadm v1.19.9 创建的 3 个节点 Kubernetes 集群。节点是虚拟机(在 Ubuntu 20.04 上使用 KVM 管理程序)。

这个 Kubernetes 集群的用途是在 Kubernetes 上进行开发和练习。我想停止并重新启动中断的集群。与 minikube 或 microk8s 提供的 stopstart 命令相同。

编辑:澄清问题以避免建议的重复帖子。我正在寻找一个优雅的解决方案来停止和重新启动同一个集群。不要破坏/重置/卸载集群。

我无法从各种网络搜索中找到简单的解决方案。有一些解决方案建议拆除集群,这不是我的用例。 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


【解决方案1】:

总结一下:

k8s 应该能够处理关机。可能无法处理的是您运行的应用程序/容器 - 只需确保容器自行启动并且不需要手动干预,您应该没问题。

我在 cmets 中提到过将 etcd 数据刷新到磁盘,但是(经过一些研究)这不应该是必要的,因为 etcd 自己完成并实现了强一致性模型以确保它不会丢失数据。但这并不意味着您不应该进行备份 - 最好有一个备份并且永远不要使用它,然后在需要时不使用它。

How to Setup & Recover a Self-hosted Kubeadm Kubernetes Cluster After Reboot 中提到的解决方案只有在您使用SelfHosting 时才相关。

另外(为方便起见)确保所有配置在重新启动之间保持不变,例如交换分区应该被禁用,如果你只运行swapoff -a,它在重启后不会持续存在 - 最好在 fstab 中进行更改,这样重启时你不必再次手动禁用任何东西。


这里有一些链接:

Backing up an etcd cluster

etcd disaster recovery

Permanently Disable Swap for Kubernetes Cluster

【讨论】:

    猜你喜欢
    • 2017-06-03
    • 2018-04-20
    • 2018-05-25
    • 2018-12-27
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    相关资源
    最近更新 更多