Kubernetes ds不会在主节点上运行pod

Pen*_*nsu 0 kubernetes kubelet

我正在运行一个拥有1个主节点和1个节点的集群.现在,当我运行守护进程时,它只显示1个所需节点,而它应该是2.我没有在describe/logs中找到任何错误,但守护进程只选择1个节点运行.我正在使用kubernetes 1.9.1.

知道我做错了什么吗?或者如何调试呢?TIA.

Vik*_*ote 9

如果k8s主节点只有node-role.kubernetes.io/master: NoSchedule污点而不容忍它,则会发生这种情况。

the node-role.kubernetes.io/master: NoSchedule耐受性,需要在K8S 1.6或更高来安排主节点上daemonsets。

在YAML文件中为守护程序集添加以下容差,以使k8s也在主节点上调度守护程序集:

...
kind: DaemonSet
spec:
  ...
  template:
   ...
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式检查主节点的污点:

kubectl describe node <master node>
Run Code Online (Sandbox Code Playgroud)

吊舱的公差可以通过以下方法检查:

kubectl describe pod <pod name>
Run Code Online (Sandbox Code Playgroud)

有关守护程序集的更多信息,请参见https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/


小智 7

默认情况下,出于安全原因,您的群集不会在主服务器上安排pod.如果您希望能够在主服务器上安排pod,例如,对于用于开发的单机Kubernetes集群,请运行:

kubectl taint nodes --all node-role.kubernetes.io/master-

  • 虽然这可行,但它会产生额外的效果,即*所有* Pod 都可以在删除了主污点的节点上进行调度。 (2认同)