04-Kubernetes标签
1、什么是标签
标签其实就一对key/value
,被关联到对象上,比如Pod,标签的使用我们倾向于能够表示对象的特殊特点,就是一眼就看出了这个Pod是干什么的,标签可以用来划分特定的对象(比如版本,服务类型等),标签可以在创建一个对象的时候直接定义,也可以在后期随时修改,每一个对象可以拥有多个标签,但是,key值必须是唯一的
。创建标签之后也可以方便我们对资源进行分组管理。如果对pod打标签,之后就可以使用标签来查看、删除指定的pod。
在k8s中,大部分资源都可以打标签。
2、给Pod资源打标签
对已经存在的Pod资源打标签:
kubectl label pods tomcat release=v1
查看标签:
kubectl get pods tomcat --show-labels
效果如下:
3、给节点对象打标签
节点在Kubernetes中也属于资源类型,我们也可以对节点进行打标签,以便用来区分不同的节点类型,比如说有计算需求的节点一般都会插上显卡,存储类型的节点一般插固态硬盘等等。
在初始化Kubernetes集群加入工作节点的时候,我们为了知道它是工作节点的时候,给他设置了如下的标签:
kubectl label node k8s-node01.staryjie.com node-role.kubernetes.io/worker=worker
设置其他标签:
kubectl label node k8s-node01.staryjie.com disk=ssd
kubectl label node k8s-node02.staryjie.com gpu=ture
查看标签:
4、查看资源标签
4.1 查看默认命名空间下所有Pod资源的标签
kubectl get pods --show-labels
4.2 查看默认命名空间下指定Pod的标签
kubectl get pods tomcat --show-labels
4.3 列出默认命名空间下key为release的Pod,不显示标签
kubectl get pods -l release
4.4 列出默认命名空间下key为release,value是v1的Pod,不显示标签
kubectl get pods -l release=v1
4.5 列出默认命名空间下key为release的所有Pod并显示对应的标签值
kubectl get pods -L release
4.6 查看所有命名空间下Pod的标签
kubectl get pods --all-namespaces --show-labels