ラベル:ポッドを整理するための武器

なぜラベルが必要なのですか

リソースが非常に大きくなると、管理を分類する方法が非常に重要になります。Kubernetesは、リソースを分類するメカニズムであるLabelを提供します。Labelは非常にシンプルですが、非常に強力です。KubernetesのほとんどすべてのリソースをLabelで整理できます。

Labelの特定の形式は、キーと値のタグペアであり、リソースの作成時に設定することも、後で追加および変更することもできます。

ポッドを例にとると、次の図に示すように、ポッドの数が増えると、ポッドが乱雑になり、管理が困難になります。

図1分類編成のないポッドポッド
ラベル:ポッドを整理するための武器
に異なるラベルを付けると、次の図に示すように、状況は完全に異なります。

図2ラベル別に整理されたポッド
ラベル:ポッドを整理するための武器

ラベルを追加

ラベルはキー値の形式であり、非常に使いやすいです。次のように、2つのラベルapp = nginxとenv = prodがポッドに設定されます。

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:                     # 为Pod设置两个Label    
    app: nginx    
    env: prod
spec:
  containers:
  - image: nginx:alpine
    name: container-0
    resources:
      limits:
        cpu: 100m
        memory: 200Mi
      requests:
        cpu: 100m
        memory: 200Mi
  imagePullSecrets:
  - name: default-secret

ポッドにラベルを付けた後、ポッドにクエリを実行すると、-show-labelsを使用してポッドのラベルを確認できます。

$ kubectl get pod --show-labels
NAME              READY   STATUS    RESTARTS   AGE   LABELS
nginx             1/1     Running   0          50s   app=nginx,env=prod

-Lを使用して、特定の固定ラベルのみを照会することもできます。

$ kubectl get pod -L app,env 
NAME              READY   STATUS    RESTARTS   AGE   APP     ENV
nginx             1/1     Running   0          1m    nginx   prod

既存のポッドの場合、kubectl labelコマンドを直接使用して、ラベルを直接追加できます。

$ kubectl label po nginx creation_method=manual
pod/nginx labeled

$ kubectl get pod --show-labels
NAME              READY   STATUS    RESTARTS   AGE   LABELS
nginx             1/1     Running   0          50s   app=nginx, creation_method=manual,env=prod

ラベルの変更

既存のラベルの場合、それを変更する場合は、以下に示すように、コマンドに--overwriteを含める必要があります。

$ kubectl label po nginx env=debug --overwrite
pod/nginx labeled

$ kubectl get pod --show-labels
NAME              READY   STATUS    RESTARTS   AGE   LABELS
nginx             1/1     Running   0          50s   app=nginx,creation_method=manual,env=debug

おすすめ

転載: blog.51cto.com/14051317/2553688