微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

启动/停止由 kubeadm 创建的本地 dev kubernetes 集群如 microk8s 或 minikube

如何解决启动/停止由 kubeadm 创建的本地 dev kubernetes 集群如 microk8s 或 minikube

使用 kubeadm v1.19.9 创建的 3 个节点 Kubernetes 集群。节点是 VM(在 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)

解决方法

总结:

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

我在关于将 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。