簡體   English   中英

kubernetes正在調度Pod來掌握

[英]kubernetes is scheduling pods to master

幾天前,我抬起頭來計划將某些吊艙計划為主節點。

我想了解為什么集群默認情況下會以這種方式工作,而不是調度到工作程序節點。

您應該檢查污染/容忍概念。 我認為這個Kub Docs鏈接描述了如何將Pod非常有效地取消分配給特定節點。 例如,默認情況下,主節點擁有NoSchedule污點,並且具有相應容差的Pod可以在主節點上進行調度。

除非,否則將使用“節點親和性”創建窗格以在特定節點上進行調度。 相同的鏈接也再次指代節點親和力。 在這兩種情況下,都對pod進行了自定義以容納寬容度或親和力,或者您已經自定義了master。

使用kubectl describe命令檢查節點或Pod上的引用屬性。

就像提到的@AYA一樣,Taint / Toleration,NodeSelector,Affinity是防止節點上的計划吊艙的正確方法。

但是,在kubeadm創建的群集中,主節點已經具有污點,以防止在主節點上運行隨機Pod。 規范中包含相應容差的吊艙除外。 您未提供已在主服務器上計划的Pod的YAML。 K8將Pod調度到MasterNode的原因可能與kubernetes網絡或kubernetes控制計划如絨布,印花布,波浪等有關。

要將默認污點還原到主節點,您必須執行以下命令:

$ kubectl taint nodes <master-node-name> node-role.kubernetes.io/master="":NoSchedule

請記住,某些Pod被設計為在master node上運行,我們不應該阻止它們進行調度。 它可能會影響群集,並可能導致性能不佳或工作不穩定。

master node上至少應為:

  • 存儲供應商
  • 庫伯調度器
  • kube-controller-manager
  • kube-apiserver

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM