4. Label与Annotation
Label(标签)是识别Kubernetes对象的标签,也是不同资源之间互相关联的方式。以key/value的方式附加到对象上(key最长不能超过63字节,value可以为空,也可以是不超过253字节的字符串)。Label不提供唯一性,并且实际上经常是很多对象(如Pods)都使用相同的label来标志具体的应用。
Label有哪些作用:
Controller和Service可以通过label slector控制Pod生命周期
影响调度
影响网络策略
annotate(注释)可以将Kubernetes资源对象关联到任意的非标识性元数据。使用客户端(如工具和库)可以检索到这些元数据。
4.1 Label
# 查看资源的标签信息
kubectl get nodes node01 —show-labels
kubectl describe nodes node01 |less
kubectl get nodes node01 -o yaml |less
设置node的角色标签
kubectl label nodes node01 node-role.kubernetes.io/work=
删除节点的角色标签
kubectl label nodes node01 node-role.kubernetes.io/work-
[rancher@rmaster01 ~]$ kubectl label nodes node01 disktype=ssdnode/node01 labeled[rancher@rmaster01 ~]$ kubectl label nodes node01 app=node/node01 labeled[rancher@rmaster01 ~]$ kubectl get nodes node01 --show-labelsNAME STATUS ROLES AGE VERSION LABELSnode01 Ready worker 17d v1.17.2 app=,beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=ssd,kubernetes.io/arch=amd64,kubernetes.io/hostname=node01,kubernetes.io/os=linux,node-role.kubernetes.io/worker=[rancher@rmaster01 ~]$[rancher@rmaster01 ~]$ kubectl label nodes node01 disktype-node/node01 labeled[rancher@rmaster01 ~]$ kubectl label nodes node01 app-node/node01 labeled[rancher@rmaster01 ~]$ kubectl get nodes node01 --show-labelsNAME STATUS ROLES AGE VERSION LABELSnode01 Ready worker 17d v1.17.2 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node01,kubernetes.io/os=linux,node-role.kubernetes.io/worker=[rancher@rmaster01 ~]$
4.2 Annotation
# 查看Annotation
kubectl describe resource_type resource_name
# 添加Annotation
kubectl annotate resource_type resource_name key=value
