首页 文章

Google容器引擎上的DaemonSets(Kubernetes)

提问于
浏览
11

我有一个包含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 回答

  • 5

    如果您只想在单个节点上运行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之前在每个节点上运行某些东西,我们建议创建一个复制控制器,其复制数大于你的节点数,并在容器规范中要求 hostPort . hostPort 将确保每个节点只运行一个来自RC的pod .

  • 0

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

相关问题