我在CentOS 7上創建了一個由2個節點和一個主節點組成的Kubernetes集羣。當我使用kubectl get nodes
時,它列出了節點,一切似乎都正常。羣集會自動平衡資源嗎?
我的問題是:集羣會自動平衡節點之間的資源嗎?我的意思是,假設我在主節點(具有512MB內存)上使用WordPress安裝了一個帶有WordPress的nginx Web服務器,如果主服務器上的內存使用率幾乎已滿,它是否會根據其需要自動依賴於節點?或者我應該做一些手動?
它是否也平衡節點之間的CPU負載?
我在CentOS 7上創建了一個由2個節點和一個主節點組成的Kubernetes集羣。當我使用kubectl get nodes
時,它列出了節點,一切似乎都正常。羣集會自動平衡資源嗎?
我的問題是:集羣會自動平衡節點之間的資源嗎?我的意思是,假設我在主節點(具有512MB內存)上使用WordPress安裝了一個帶有WordPress的nginx Web服務器,如果主服務器上的內存使用率幾乎已滿,它是否會根據其需要自動依賴於節點?或者我應該做一些手動?
它是否也平衡節點之間的CPU負載?
sfgroups提到的關鍵點是一個pod不能在節點之間拆分,因此當節點上的資源耗盡時沒有「資源平衡」。在pod中運行的進程將被OOM殺死,如果內核遇到其內存cgroup限制,並且如果它達到其CPU cgroup限制,它將受到限制。
您需要一個適合您節點的容器,以留出每個節點上運行的守護程序(kubelet和kube-proxy)的空間。 (與您的問題相關)的唯一自動事件是:1)在適合的節點上調度pod,2)自動調節pod(運行水平pod autoscaler時),3)自動調節節點(運行時一個集羣autoscaler)。您可能還會對複製集和部署的行爲感興趣,該行爲控制特定應用程序中集羣中存在的集羣的數量。
Kubernetes不會平衡節點資源。它將根據節點中的可用資源調度工作負載。在你的情況下,如果主節點上的內存已滿,如果你想運行另一個吊艙,kubernetes會將它們安排在第二個節點中。
這不會以任何方式回答問題。 「時間表」是什麼意思?並說我不想運行另一個吊艙?我的意思是,如果我有一個需要1000MB RAM的容器。但我只有1個主節點和3個節點,每個節點包含512MB的RAM。 Kubernetes會分配給每個256MB嗎?或者他會做什麼? – Madno
在這種情況下,Kubernetes無法在現有節點配置上運行pod。 POD在自治單元上,它不能跨越多個節點。您需要具有1000MB可用RAM的節點來安排您的POD。 – sfgroups