代码之家  ›  专栏  ›  技术社区  ›  Shahriar

调度程序没有为主节点中的守护程序安排Pod

  •  10
  • Shahriar  · 技术社区  · 7 年前

    我想部署一个守护程序以进行监视。因此,需要在所有节点中部署这些吊舱。

    守护程序集确保所有(或某些)节点运行Pod的副本。

    我正在使用守护程序集,以便所有节点都获得一个副本。

        spec:
          containers:
          - name: fluentd
            image: aerocloud.io/containers/fluentd:0.0.1
            volumeMounts:
            - name: varlog
              mountPath: /var/log
          volumes:
          - name: varlog
            hostPath:
              path: /var/log
    

    当我创建这个时 DaemonSet 在我的Kubernetes集群中,我没有看到Pod在主节点中运行。

    此守护程序集的Pod正在除主节点外的所有节点中运行。

    我错过了什么?如何强制调度器在主节点中调度Pod?

    1 回复  |  直到 7 年前
        1
  •  28
  •   Jakub    7 年前

    自Kubernetes 1.6以来,守护程序默认情况下不会在主节点上进行调度。为了在master上安排时间,您必须在Pod spec部分中添加容差:

    tolerations:
    - key: node-role.kubernetes.io/master
      effect: NoSchedule
    

    有关更多详细信息,请查看中的YAML文件示例 Kubernetss DeamonSet docu . 本章也提到了这一点 如何安排守护程序吊舱 .