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

问题描述 投票:4回答:1

[我跟随Alex Ellis出色的tutorial,该人使用kubeadm在Raspberry Pis上旋转了一个K8s集群。对我不清楚,当我希望对Pis重新通电时,最佳实践是什么。

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

有没有一种方法可以关闭并重新启动计算机而不删除群集?

谢谢!

kubeadm
1个回答
0
投票

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

首先要确保您具有highly available cluster。这至少包含3个主节点和3个工作节点。为什么是3?这样一来,他们就可以随时为最终一致性形成法定人数。

现在您有了HA Kubernetes集群,您将必须遍历每个应用程序清单,并确保已指定资源请求和限制。这样一来,您可以确保如果没有所需的资源,则永远不会在Pod上调度Pod。此外,如果Pod出现错误,导致其消耗大量异常资源,则该限制将阻止它关闭您的集群。

现在已经不碍您了,您可以开始重新启动集群的过程。您要做的第一件事是重新启动主服务器。因此,对(至少)三个主服务器之一运行kubectl drain $MASTER。 API服务器现在将拒绝任何计划尝试,并立即开始驱逐任何计划的Pod并将其工作负载迁移到其他主服务器的过程。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.