4.3.2 管理资源标签

创建资源时,可直接在其 metadata 中嵌套使用 “labels” 字段以定义要附加的标签项。例如,下面的 Pod 资源清单文件示例 pod-with-labels.yaml 中使用了两个标签 env=qa 和 tier=frontend:

apiVersion: v1
kind: Pod
metadata:
    name: pod-with-labels
    labels:
        env: qa
        tier: frontend
spec:
    containers:
    - name: myapp
      image: ikubernetes/myapp:v1

基于此资源清单创建出定义的Pod对象之后,即可在“kubectl get pods”命令中使用“--show-labels”选项,以额外显示对象的标签信息:

**[terminal]
**[delimiter $ ]**[command kubectl apply -f pod-with-labels.yaml]
pod/pod-with-labels created
**[delimiter $ ]**[command kubectl get pods --show-labels]
NAME                       READY   STATUS    RESTARTS   AGE    LABELS
pod-example                1/1     Running   1          2d4h   <none>
pod-with-labels            1/1     Running   0          32s    env=qa,tier=frontend

标签较多时,在 “kubectl get pods” 命令上使用 “-L key1, key2, ...” 选项可指定显示有着特定键的标签信息。例如,仅显示各 pods 之上的以 env 和 tier 为键名的标签:

**[terminal]
**[delimiter $ ]**[command kubectl get pods -L env,tier]
NAME                       READY   STATUS    RESTARTS   AGE    ENV   TIER
pod-example                1/1     Running   1          2d4h
pod-with-labels            1/1     Running   0          4m3s   qa    frontend

“kubectl label” 命令可以直接管理活动对象的标签,以按需进行添加或修改等操作。例如,为 pod-example 添加 env=production 标签:

**[terminal]
**[delimiter $ ]**[command kubectl label pods/pod-example env=production]
pod/pod-example labeled

不过,对于已经附带了指定键名的标签,使用“kubectl label” 为其设定新的键值时需要为命令同时使用 “--overwrite” 命令以强制覆盖原有的键值。例如,将 pod-with-labels 的 env 的值修改为 “testing”:

**[terminal]
**[delimiter $ ]**[command kubectl label pods/pod-with-labels env=testing --overwrite]
pod/pod-with-labels labeled

用户若期望某标签之下的资源集合执行某类操作,例如,查看或删除等,则需要先使用“标签选择器”挑选出满足条件的资源对象。

results matching ""

    No results matching ""