前几天查了一下为什么没有pod被调度到master节点,发现了这个问题:Allow schedule of pods on Kubernetes master?
它告诉这是因为主节点被“NoSchedule”效果污染了,并给出了删除该污染的命令。
但是在我在集群上执行该命令之前,我想首先了解它为什么会出现在那里。
主节点不应该运行 Pod 有什么原因吗?任何与它相关的最佳实践?
kubernetes 的目的是轻松部署应用程序并根据需求扩展它们。Pod 是运行应用程序的基本实体,可以分别根据高低需求进行增减(Horizontal Pod Autoscalar)。
如果您正在查看大型应用程序,其中您的集群可能会根据需要扩展到 100 个节点(集群自动标量),则这些工作程序 Pod 需要在工作程序节点上运行。这些增加的 pod 会给您的节点带来压力,一旦它们这样做,您就可以始终使用集群自动标量增加集群中的工作节点。假设,您使 master 可调度,然后高内存和 CPU 压力使您的 master 面临使 master 崩溃的风险。请注意,您不能使用自动标量自动缩放主。这样,您将整个集群置于危险之中。如果您只有一个 master,那么如果 master 崩溃,您将无法安排任何事情。如果你有 3 个 master 并且其中一个崩溃了,
此外,对于较大的集群,您已经需要具有高资源的主节点来管理您的工作节点。在这种情况下,您不能在主节点上放置额外的负载来运行工作负载。请在此处查看在 kubernetes 中设置大型集群
如果您有可管理的工作量并且您知道它不会增加超过某个水平。您可以使 master 成为可调度的。但是对于生产集群,根本不推荐使用。
| 归档时间: |
|
| 查看次数: |
1524 次 |
| 最近记录: |