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











