【问题标题】:Kubernetes: Deploy daemon set to all nodes except for master nodeKubernetes:将守护程序集部署到除主节点之外的所有节点
【发布时间】:2018-11-02 19:46:14
【问题描述】:

我在 1.5 版上运行 kubernetes,有两个节点和一个主节点。我想将 fluentd 作为守护程序集部署到所有节点上,但是主节点(主节点发送垃圾邮件警告消息,因为它找不到日志)。如何避免部署到主节点?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    所以要让 Pod 不在主节点上调度,您需要添加以下内容

    nodeSelector:
        kubernetes.io/role: node
    

    这将使 pod 仅在节点上调度。上面的示例显示了 kops 配置集群中节点的默认标签。如果您从不同的提供商处配置了集群,请提供关键值

    【讨论】:

      【解决方案2】:

      您可以将label 用于您的从属节点,并在selector 中使用该标签作为守护程序集,它只会部署在具有该标签的节点上。

      相反,您可以定义一个否定选择器来将守护程序集分配给没有标签的 pod。在您的情况下,没有主标签的 pod。

      【讨论】:

      • 我们最终为我们想要部署的所有节点添加了一个标签,并为它们使用了节点选择器。我们将如何使用否定选择器?
      • 我的错,它似乎只是为了查找,而不是为了定义。
      【解决方案3】:

      您正在寻找 Taints 和 Tolerations 功能。使用这些,您可以以特定方式将给定节点定义为“污染”,以防止 Pod 在该节点上调度,除非它们具有与该污染匹配的容限。

      【讨论】:

      • 这不起作用:tolerations: - key: "kubernetes.io/role" operator: "Equal" value: "master" effect: "NoSchedule"
      猜你喜欢
      • 2019-12-20
      • 2018-10-17
      • 2020-02-04
      • 2015-10-29
      • 2018-12-26
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      相关资源
      最近更新 更多