Google容器引擎上的DaemonSets(Kubernetes)

Mic*_*ael 11 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"]
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*son 6

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

要在特定节点上运行pod,可以在pod规范中使用nodeSelector,如文档中的Node Selection示例中所述.


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

首先,将在计划于3月份发布的1.2版本的GKE中启用DaemonSet.在版本1.1中的GKE中未启用它,因为在1.1被切断时它被认为不够稳定.

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