2016-10-19 53 views
1

我跟隨指南[1]創建具有1個主節點和2個節點的多節點K8S羣集。另外,標籤需要分別設置到每個節點。如何在創建時將標籤設置爲Kubernetes節點?

Node 1 - label name=orders 
Node 2 - label name=payment 

我知道上面是可以實現運行kubectl命令

kubectl get nodes 
kubectl label nodes <node-name> <label-key>=<label-value> 

但我想知道如何創建一個節點時設置標籤。節點創建指導在[2]中。

欣賞您的輸入。

[1] https://coreos.com/kubernetes/docs/latest/getting-started.html

[2] https://coreos.com/kubernetes/docs/latest/deploy-workers.html

回答

1

有提供給你幾個選擇。最簡單的恕我直言將是使用一個系統單元來安裝和配置kubectl,然後運行kubectl label命令。或者,您可以直接使用curl來更新node'smetadata中的標籤。這就是說,雖然我不知道你的確切用例,但你在節點上使用標籤的方式似乎是爲了繞過Kubernetes的一些關鍵特性,比如節點間動態調度組件。我會建議,而不是自動標記節點,試圖解決爲什麼您需要首先識別節點。

+0

是。我贊同你。但我的要求是在與標籤匹配的節點上創建Pod。因爲在K8S集羣中運行的軟件包會很多,所以我很容易理解在哪個節點上運行哪個軟件包。 –

2

事實上有一個微不足道的方法來實現,因爲1.3或類似的東西。

什麼是負責註冊你的節點是啓動它的kubelet進程,所有你需要做的就是傳遞一個像這樣的標誌--node-labels 'role=kubemaster'。這就是我區分AWS k8s集羣中不同自動縮放組之間節點的方式。

+0

好像我的'v1.7.3 + coreos.0'羣集沒有檢測到kubelet的CLI參數已經改變.' - node-labels mapStringString <警告:Alpha特徵>在羣集中註冊節點時添加的標籤。標籤必須是由','分隔的鍵=值對。' – mighq

+0

根據https://github.com/kubernetes/kubernetes/issues/51858它只適用於初始節點註冊期間。 – mighq

相關問題