2016-02-19 50 views
11

我有一個具有21個節點的Google容器引擎集羣,有一個特別需要始終在具有靜態IP地址(出站目的)的節點上運行一個集羣。谷歌容器引擎(Kubernetes)上的守護程序集

Kubernetes支持DaemonSets

這是一種方法,有一個吊艙被部署爲通過給所述節點,在所述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"] 

何時支持此功能,以及有哪些解決方法?

回答

5

如果您只想在單個節點上運行pod,則實際上不想使用DaemonSet。 DaemonSet設計用於在每個節點上運行,而不是單個特定節點。

要在特定節點上運行pod,可以在pod規範中使用nodeSelector,如Node Selection example in the docs中所述。


編輯:但是,對於任何閱讀,它希望在GKE每個節點上運行的東西,有兩件事情我可以說:

首先,DaemonSet將在GKE啓用在1.2版本中,計劃在3月份進行。它在1.1版本的GKE中沒有啓用,因爲它在1.1被削減的時候並不足夠穩定。其次,如果您希望在1.2版本之前在每個節點上運行某些內容,我們建議您創建一個副本數量大於節點數量的複製控制器,並在容器規範中要求hostPorthostPort將確保每個節點不會超過一個來自RC的吊艙。

0

DaemonSets仍然是alpha功能,Google Container Engine僅支持生產Kubernetes功能。解決方法:構建您自己的Kubernetes羣集(GCE,AWS,裸機...)並啓用alpha/beta功能。