标签定义

标签就是一对 key/value ,被关联到对象上。
标签的使用让我们能够表示出对象的特点,比如使用在Pod上,能一眼看出这个Pod是干什么的。也可以用来划分特定的对象(比如版本,服务类型等)。
标签可以在创建一个对象的时候直接定义,也可以在后期随时修改,每一个对象可以拥有多个标签,但是,key值必须是唯一的。
创建标签之后方便对资源进行分组管理。例如对Pod打标签后就可以使用标签来查看、删除指定的Pod。

在k8s中,大部分资源都可以打标签

标签实操

1、对Node节点打标签

给 k8s-node2 节点打个具有 “node-type=worker” 的标签

kubectl label nodes k8s-node2 node-type=worker

查看标签是否打成功

kubectl get nodes k8s-node2 --show-labels

显示如下,说明标签达成功了
在这里插入图片描述

2、对Pod资源打标签

2.1、对已经存在的Pod打标签

Pod名称为 pod-test

kubectl label pods pod-test release=v1 -n test

(配图)

2.2、新创建Pod并打标签

vim pod-tomcat.yaml
apiVersion: v1
kind: Pod
metadata:
  name: tomcat-test
  namespace: test # 命名空间为 test下
  labels:  # 给Pod打标签
    app: tomcat
spec:
  containers:
  - name:  tomcat-java
    ports:
    - containerPort: 8080
    image: tomcat-8.5-jre8:v1
    imagePullPolicy: IfNotPresent

创建Pod资源

kubectl apply -f pod-tomcat.yaml

查看标签是否打成功

kubectl get pods tomcat-test --show-labels -n test

显示如下,说明标签达成功了
(配图)

查看资源标签

查看命名空间为test下 所有Pod的标签

kubectl get pods -n test --show-labels

在这里插入图片描述

查看命名空间为test下 指定Pod具有的所有标签
Pod名称为 tomcat-test

kubectl get pods tomcat-test -n test --show-labels

(配图)

列出命名空间为test下 标签key是 “release” 的Pod(-l:仅过滤不显示标签)

kubectl get pods -n test -l release

(配图)

列出命名空间为test下 标签key包含 “release” 或 “app” 的Pod(-L:显示对应的标签值)

kubectl get pods -n test -L release,app

在这里插入图片描述

列出命名空间为test下 标签key是 “release”、值是 “v1” 的 Pod(不显示标签)

kubectl get pods -n test -l release=v1

在这里插入图片描述
查看所有名称空间下 所有Pod的标签

kubectl get pods --all-namespaces --show-labels

在这里插入图片描述

删除资源标签

删除命名空间为test下 标签key是“release”、值是 “v1” 的 Pod

kubectl delete pods -n test -l release=v1

在这里插入图片描述

删除资源的某个标签

例如:删除 “k8s-node2” 节点上的 “node-type”标签

kubectl label nodes k8s-node2 node-type-

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐