2017-08-15 45 views
1

我在CentOS 7上创建了一个由2个节点和一个主节点组成的Kubernetes集群。当我使用kubectl get nodes时,它列出了节点,一切似乎都正常。群集会自动平衡资源吗?

我的问题是:集群会自动平衡节点之间的资源吗?我的意思是,假设我在主节点(具有512MB内存)上使用WordPress安装了一个带有WordPress的nginx Web服务器,如果主服务器上的内存使用率几乎已满,它是否会根据其需要自动依赖于节点?或者我应该做一些手动?

它是否也平衡节点之间的CPU负载?

回答

1

sfgroups提到的关键点是一个pod不能在节点之间拆分,因此当节点上的资源耗尽时没有“资源平衡”。在pod中运行的进程将被OOM杀死,如果内核遇到其内存cgroup限制,并且如果它达到其CPU cgroup限制,它将受到限制。

您需要一个适合您节点的容器,以留出每个节点上运行的守护程序(kubelet和kube-proxy)的空间。 (与您的问题相关)的唯一自动事件是:1)在适合的节点上调度pod,2)自动调节pod(运行水平pod autoscaler时),3)自动调节节点(运行时一个集群autoscaler)。您可能还会对复制集和部署的行为感兴趣,该行为控制特定应用程序中集群中存在的集群的数量。

1

Kubernetes不会平衡节点资源。它将根据节点中的可用资源调度工作负载。在你的情况下,如果主节点上的内存已满,如果你想运行另一个吊舱,kubernetes会将它们安排在第二个节点中。

+0

这不会以任何方式回答问题。 “时间表”是什么意思?并说我不想运行另一个吊舱?我的意思是,如果我有一个需要1000MB RAM的容器。但我只有1个主节点和3个节点,每个节点包含512MB的RAM。 Kubernetes会分配给每个256MB吗?或者他会做什么? – Madno

+0

在这种情况下,Kubernetes无法在现有节点配置上运行pod。 POD在自治单元上,它不能跨越多个节点。您需要具有1000MB可用RAM的节点来安排您的POD。 – sfgroups