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

时间:2018-02-11 08:08:10

标签: kubernetes kubelet

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

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

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:6)

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

在k8s 1.6或更高版本中需要the node-role.kubernetes.io/master: NoSchedule容忍来在主节点上安排守护进程。

为YAML文件中的守护进程添加以下容差,以便在主节点上生成k8s调度守护进程:

...
kind: DaemonSet
spec:
  ...
  template:
   ...
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule

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

kubectl describe node <master node>

可以通过以下方式检查容器的容差:

kubectl describe pod <pod name>

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