k8s 标签
k8s label 简介
Label以key/value键值对的形式附加到任何对象上,如Pod,Service,Node, RC(ReplicationController)/RS(ReplicaSet)等;
同一个资源是可以拥有多个标签的,比如我们的Pod-A,既可以拥有app=tomcat,也可以具有web=nihao的标签,使用上更加方便。
标签的作用是为了统一管理,具有相同特点的pod,可以让其具有同一个label,这样子的话后面管理起来非常方便,也可以指定这个pod在哪个node节点上运行,如果你有特殊需要的话。
标签的形式:
key: value
如:app: nginx
role: dev
当然一个资源对象是可以有多个标签的;
使用环境介绍
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
deployment: deployment-label 这里的内容在metadata内,所以仅代表当前这个对象的标签;
name: nginx-dep
spec:
replicas: 3
selector:
matchLabels: 这里的标签选择器使用,是用来匹配POD 使用的;
app: nginx1
template:
metadata:
labels:
app: nginx1 这里是定义的POD的标签,与上面的;
spec:
containers:
- image: nginx
name: nginx
nodeSelector:
node: node1
标签的查看
在查询资源对象的时候,后面可添加--show-label 查看标签信息,同时也可以对对象进行描述,在描述信息里查看标签信息;
1、node 节点查看
其余资源可以采取同样的方法进行查看;
标签的添加
kubectl label [node/pod/service....] node1 label_key=label_value
标签的删除
删除标签与添加相似,在命令的最后面添加-即可;
标签的修改
标签的修改,直接在添加标签命令的基础上,对value 进行修改后,添加--ove--overwriterwrite参数即可