リアルタイム環境で作業する場合、特定の種類のワークロード(またはアプリケーション)を指定されたワーカーノードで実行したい場合があります。
たとえば、本番ワークロードは特定のワーカーノードで実行する必要があり、ステージングまたは開発ワークロードと混同しないようにする必要があります。
ここで、ノードにラベルを追加すると便利です。
Kubernetesのノードにラベルを追加し、ラベルを変更して、後でそれらのラベルを削除する方法を紹介します。
Kubernetesでノードラベルを読み取る方法
次の方法で、Kubernetesノードの詳細とそのラベルを一覧表示できます。
kubectl get nodes --show-labels
特定のノードの詳細を知りたい場合は、次を使用してください:
kubectl label --list nodes node_name
ラベルはキーと値のペアの形式です。文字または数字で始まる必要があり、文字、数字、ハイフン、ドット、アンダースコアをそれぞれ最大63文字まで含めることができます。
ここで、kworker-rj1
が必要だとします。 本番関連のすべてのワークロードをホストするノード。
そのノードに適切な名前(本番環境など)でラベルを付けましょう:
[email protected]:~# kubectl label nodes kworker-rj1 workload=production
node/kworker-rj1 labeled
ポッドのラベルを確認します:
[email protected]:~# kubectl label --list nodes kworker-rj1 | grep -i workload
workload=production
grepコマンドを使用して、不要な詳細を取り除き、ラベルに焦点を合わせました。
後で要件に基づいて一部のラベルを上書きすることにした場合は、それを実現する方法を確認してください。
[email protected]:~# kubectl label --overwrite nodes kworker-rj1 workload=staging
node/kworker-rj1 labeled
ポッドの再ラベル付けを確認できます:
[email protected]:~# kubectl label --list nodes kworker-rj1 | grep -i workload
workload=staging
ノードからラベルを削除するには、値なしでキーを指定します。
[email protected]:~# kubectl label --overwrite nodes kworker-rj1 workload-
node/kworker-rj1 labeled
ノードラベルの削除を確認できます:
[email protected]:~# kubectl label --list nodes kworker-rj1 | grep -i workload
[email protected]:~#
それで全部です!このチュートリアルでkubectllabelコマンドに慣れていただければ幸いです。
Rakesh Jain
DevOps Professional | RHCA |ジェンキンス| Git | Docker | Kubernetes | Ansible |プロメテウス| Grafana | AWSクラウド