Google容器引擎上的DaemonSets(Kubernetes)

时间:2016-02-19 19:55:47

标签: kubernetes google-kubernetes-engine

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

Kubernetes支持DaemonSets

通过为节点提供与DaemonSet中的nodeSelector匹配的标签,可以将pod部署到特定节点(或一组节点)。然后,您可以为标记节点所在的VM实例分配静态IP。但是,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"]

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

2 个答案:

答案 0 :(得分:6)

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

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

编辑:但对于那些想要在GKE中的每个节点上运行某些内容的人来说,我可以说两件事:

首先,将在计划于3月份发布的1.2版本的GKE中启用DaemonSet。在版本1.1的GKE中没有启用它,因为在1.1被删除时它被认为不够稳定。

其次,如果要在1.2出局之前在每个节点上运行某些内容,我们建议创建一个复制控制器,其复制数大于节点数,并在容器规范中要求hostPorthostPort将确保每个节点只运行一个来自RC的pod。

答案 1 :(得分:0)

DaemonSets仍然是alpha功能,而Google容器引擎仅支持生产Kubernetes功能。解决方法:构建您自己的Kubernetes集群(GCE,AWS,裸机......)并启用alpha / beta功能。