标签
- 标签定义
- 标签实操
- 1、对Node节点打标签
- 2、对Pod资源打标签
- 查看资源标签
- 删除资源标签
标签定义
标签就是一对 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-testnamespace: test # 命名空间为 test下labels: # 给Pod打标签app: tomcat
spec:containers:- name: tomcat-javaports:- containerPort: 8080image: tomcat-8.5-jre8:v1imagePullPolicy: 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-