kubeadm - 是否有重启集群的最佳实践

标签 kubeadm

我关注了 Alex Ellis 的精彩 tutorial使用 kubeadm在 Raspberry Pi 上启动 K8s 集群。我不清楚当我希望对 Pis 进行电源循环时的最佳做法是什么。

我怀疑 sudo systemctl reboot会导致问题。我不想每次都从 kubeadm reset 开始删除和重新创建集群.

有没有办法可以在不删除集群的情况下关闭和重新启动机器?

谢谢!

最佳答案

这个问题已经很老了,但我想其他人最终可能会偶然发现它,所以我想我会提供一个快速的答案,因为事实上,围绕这个操作有一个最佳实践。

您要确保的第一件事是您有一个 highly available cluster .这包括至少 3 个主节点和 3 个工作节点。为什么是 3?这是为了在任何给定的时间他们总是可以形成最终一致性的法定人数。

既然您拥有一个 HA Kubernetes 集群,您将不得不检查您的每一个应用程序 list ,并确保您已指定资源请求和限制。这样您就可以确保在没有所需资源的情况下永远不会在 Pod 上调度 Pod。此外,如果 Pod 存在导致其消耗大量异常资源的错误,该限制将阻止它关闭您的集群。

现在,您可以开始重新启动集群的过程。你要做的第一件事是重启你的主人。所以运行kubectl drain $MASTER对抗你的(至少)三位大师之一。 API Server 现在将拒绝任何调度尝试,并立即开始驱逐任何调度的 pod 并将其工作负载迁移到您的其他主节点的过程。

使用 kubectl describe node $MASTER监视节点,直到删除所有 pod。现在您可以安全地连接到它并重新启动它。恢复后,您现在可以运行 kubectl uncordon $MASTER API Server 将再次开始向它调度 Pod。再次使用 kubectl describe $NODE直到您确认所有 Pod 都准备就绪。

对所有母版重复此过程。重新启动主节点后,您可以安全地为所有三个(或更多)工作节点重复此过程。如果您正确执行此操作,您可以确保所有应用程序将保持 100% 可用性,前提是它们每个服务使用多个 pod 并且具有适当的 Deployment Strategy配置。

关于kubeadm - 是否有重启集群的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48362855/

相关文章:

kubernetes - 无法启动 kubernetes API 服务器

kubernetes - 如何完全卸载kubernetes

postgresql - 为什么我的 Kubernetes 服务运行在不同的子网上?

docker - kubeadm docker法兰绒集成

kubernetes - Config not found :/etc/kubernetes/admin. conf -- 设置 kubeadm 工作节点后

docker - Kubernetes V1.11.0 HA群集CoreDNS PODS未出现

kubernetes - 在 storageclass.storage.k8s.io "fast"中未找到创建持久卷结果

kubernetes - 初始化 master 后找不到 kubeadm token

kubernetes - kubernetes集群是否可以有2个网络插件?