繁体   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