Kubernetes----标签Label的常用操作

网友投稿 258 2022-09-11

Kubernetes----标签Label的常用操作

一、使用命令行方式操作标签

1.1 准备条件

创建dev,并创建两个pod,如下:

[root@master demo]# kubectl create namespace devnamespace/dev created[root@master demo]# kubectl run nginx1 --image=nginx:1.17.1 --port=8080 -n devpod/nginx1 created[root@master demo]# kubectl run nginx2 --image=nginx:1.17.3 --port=8181 -n devpod/nginx2 created[root@master demo]# kubectl get pod -n devNAME READY STATUS RESTARTS AGEnginx1 1/1 Running 0 62snginx2 1/1 Running 0 37s[root@master demo]#

1.2 查看Pod标签命令

如下,可以看到此时已经增加了标签,run=nginx1和run=nginx2

[root@master demo]# kubectl get pod -n dev --show-labelsNAME READY STATUS RESTARTS AGE LABELSnginx1 1/1 Running 0 2m16s run=nginx1nginx2 1/1 Running 0 111s run=nginx2[root@master demo]#

1.3 使用命令给pod增加标签

如下,给nginx1增加version=1.17.1的标签,给nginx2增加version=1.17.3的标签

[root@master demo]# kubectl label pod nginx1 version=1.17.1 -n devpod/nginx1 labeled[root@master demo]# kubectl label pod nginx2 version=1.17.3 -n devpod/nginx2 labeled[root@master demo]# kubectl get pod -n dev --show-labelsNAME READY STATUS RESTARTS AGE LABELSnginx1 1/1 Running 0 4m48s run=nginx1,version=1.17.1nginx2 1/1 Running 0 4m23s run=nginx2,version=1.17.3[root@master demo]#

1.4 使用等式方式根据标签过滤

如下使用等号过滤

[root@master demo]# kubectl get pod -l "version=1.17.1" -n devNAME READY STATUS RESTARTS AGEnginx1 1/1 Running 0 8m29s[root@master demo]#

如下使用不等号过滤

[root@master demo]# kubectl get pod -l "version!=1.17.1" -n devNAME READY STATUS RESTARTS AGEnginx2 1/1 Running 0 8m42s[root@master demo]#

1.5 使用集合的方式过滤标签

如下使用in的方式

[root@master demo]# kubectl get pod -l "version in (1.17.1)" -n devNAME READY STATUS RESTARTS AGEnginx1 1/1 Running 0 10m[root@master demo]#

如下,使用notin的方式

[root@master demo]# kubectl get pod -l "version notin (1.17.1)" -n devNAME READY STATUS RESTARTS AGEnginx2 1/1 Running 0 11m[root@master demo]#

1.6 更新标签

如下,将nginx1的version标签值更改为1.0

[root@master demo]# kubectl label pod nginx1 version=1.0 -n dev --overwritepod/nginx1 labeled[root@master demo]# kubectl get pod -n dev --show-labelsNAME READY STATUS RESTARTS AGE LABELSnginx1 1/1 Running 0 21m run=nginx1,version=1.0nginx2 1/1 Running 0 21m run=nginx2,version=1.17.3[root@master demo]#

1.7 删除标签

如下,将nginx1的version标签删除

[root@master demo]# kubectl label pod nginx1 version- -n devpod/nginx1 labeled[root@master demo]# kubectl get pod -n dev --show-labelsNAME READY STATUS RESTARTS AGE LABELSnginx1 1/1 Running 0 23m run=nginx1nginx2 1/1 Running 0 22m run=nginx2,version=1.17.3[root@master demo]#

二、使用配置文件创建标签

2.1 编写配置文件

如下,编写pod_nginx_label.yaml文件,内容如下:即创建一个命名空间dev,并创建一个pod,同时给pod打version=1.0和env=test的标签

apiVersion: v1kind: Namespacemetadata: name: dev---apiVersion: v1kind: Podmetadata: name: nginx namespace: dev labels: version: "1.0" env: "test"spec: containers: - image: nginx:1.17.3 name: pod ports: - name: nginx-port containerPort: 80 protocol:

2.2 使用配置文件创建资源

使用如下命令创建资源

[root@master demo]# kubectl apply -f pod_nginx_label.yamlnamespace/dev unchangedpod/nginx created[root@master demo]#

如下,查询发现已经创建成功

[root@master demo]# kubectl get pod -n dev --show-labelsNAME READY STATUS RESTARTS AGE LABELSnginx 1/1 Running 0 81s env=test,version=1.0[root@master demo]#

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubernetes----Deployment常用操作
下一篇:DoMarketing-营销智库:范冰冰之后,“真性情”的郑爽已失去人心!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~