【问题标题】:DaemonSets on Google Container Engine (Kubernetes)Google Container Engine (Kubernetes) 上的 DaemonSets
【发布时间】:2016-06-01 12:44:28
【问题描述】:

我有一个具有 21 个节点的 Google Container Engine 集群,特别是有一个 pod,我需要始终在具有静态 IP 地址的节点上运行(用于出站目的)。

Kubernetes 支持DaemonSets

这是一种将 pod 部署到特定节点(或一组节点)的方法,方法是为节点提供与 DaemonSet 中的 nodeSelector 匹配的标签。然后,您可以将静态 IP 分配给标记节点所在的 VM 实例。但是,GKE 似乎不支持 DaemonSet 类型。

$ kubectl create -f go-daemonset.json 
error validating "go-daemonset.json": error validating data: the server could not find the requested resource; if you choose to ignore these errors, turn validation off with --validate=false

$ kubectl create -f go-daemonset.json --validate=false
unable to recognize "go-daemonset.json": no kind named "DaemonSet" is registered in versions ["" "v1"]

何时会支持此功能以及解决方法是什么?

【问题讨论】:

    标签: kubernetes google-kubernetes-engine


    【解决方案1】:

    如果你只想在单个节点上运行 pod,你实际上并不想使用 DaemonSet。 DaemonSet 旨在在每个 节点上运行一个 pod,而不是在单个特定节点上。

    要在特定节点上运行 pod,您可以使用 pod 规范中的 nodeSelector,如 Node Selection example in the docs 中所述。


    编辑:但是对于阅读本文并希望在 GKE 中的每个节点上运行某些东西的任何人,我可以说两件事:

    首先,计划在 3 月份在 GKE 1.2 版本中启用 DaemonSet。它在 1.1 版的 GKE 中未启用,因为在 1.1 被删减时它被认为不够稳定。

    其次,如果您想在 1.2 发布之前在每个节点上运行某些东西,我们建议创建一个副本数大于您的节点数的复制控制器,并在容器规范中要求 hostPorthostPort 将确保每个节点运行 RC 中的 pod 不超过一个。

    【讨论】:

      【解决方案2】:

      DaemonSets 仍是 alpha 功能,Google Container Engine 仅支持生产 Kubernetes 功能。解决方法:构建您自己的 Kubernetes 集群(GCE、AWS、裸机等)并启用 alpha/beta 功能。

      【讨论】:

        猜你喜欢
        • 2017-03-26
        • 1970-01-01
        • 2018-12-25
        • 2017-04-07
        • 2017-09-07
        • 2017-03-25
        • 2017-04-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多