2016-10-19 2 views
1

私はマスター[1]と2つのノードを持つマルチノードK8Sクラスタを作成するためのガイド[1]に従っています。また、各ノードにラベルを設定する必要があります。作成時にKubernetesノードにラベルを設定するにはどうすればいいですか?

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

私は上記の

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

ランニングkubectlコマンドを達成することができた。しかし、私はノードを作成するときにラベルを設定する方法を知りたいことを知っています。ノード作成ガイダンスは[2]にあります。

あなたの意見を参考にしてください。

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

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

答えて

1

あなたに利用できるいくつかのオプションがあります。最も簡単なIMHOは、システムユニットを使用してkubectlをインストールして構成し、次にkubectl labelコマンドを実行することです。また、curlを使用してnode'smetadataのラベルを直接更新することもできます。

あなたの正確なユースケースは分かりませんが、ノード上のラベルを使用する方法は、ノード間のコンポーネントの動的スケジューリングなど、Kubernetesの主要機能のいくつかをバイパスするための努力のようです。最初にノードを特定する必要がある理由を解決しようとすると、自動的にノードにラベルを付ける作業よりも、私は示唆しています。

+0

である。仰るとおりです。しかし、私の要件は、ラベルに一致するノード上にポッドを作成することです。 K8Sクラスタにはたくさんのポッドが走っているので、どのノードでどのポッドが動いているのかを理解するのは簡単です。 –

2

実際には1.3またはそのような何かので、それを達成するための些細な方法があります。あなたのノードを登録する責任がある何

がそれに打ち上げkubeletプロセスであり、あなたがする必要があるのは、この--node-labels 'role=kubemaster'のようにそれにフラグを渡しています。これは、AWS k8クラスタ内のさまざまな自動縮尺グループ間でノードを区別する方法です。

+0

は、私の 'v1.7.3 + coreos.0'クラスタが、kubeletのCLI引数が変更されたことを検出しないようです。 - node-labels mapStringString <警告:Alpha機能>クラスタにノードを登録するときに追加するラベル。ラベルは、「=」で区切られたキー=値のペアでなければなりません。 – mighq

+0

https://github.com/kubernetes/kubernetes/issues/51858によ​​ると、最初のノード登録時にのみ適用されます。 – mighq

関連する問題