今天继续给大家介绍Linux运维相关知识,本文主要内容是Kubernetes中的标签与标签选择器。
一、标签与标签选择器概述
(一)标签
在Kubernetes集群中,标签本身是一个键值对类型的数据,并且可以附着在任何资源对象上,可以在资源对象被创建时就指定,或者是在资源对象创建后添加。在Kubernetes集群中,一个资源对象可以拥有多个标签,多个资源对象也可拥有相同的标签。
Kubernetes集群中标签有严格的格式,其Key的定义可以使用字母、数字而下划线,连字符以及点号,但是只能够以字符或者是数字开头。Value可以为空,也可以使用字母、数字、连字符以及点好,但是首尾必须使用数字或者是字母。
(二)标签选择器
在Kubernetes集群中,标签选择器常用于标签的查询条件或者是选择标准。Kubernetes目前支持两种标签选择器,即基于等值关系和基于集合关系的标签选择器。
基于等值关系的标签选择器有以下三种:
“==”、“=”和“!=”,前两种都表示等于,最后一个表示不等于
基于集合关系的标签选择器有以下四种:
key in (VALUE1,VALUE2,VALUE3……),表示指定的键值存在与后面的集合中。
key notin (VALUE1,VALUE2,VALUE3……),表示指定的键值不存在与后面的集合中。
key,表示存在此键名的标签。
!key,表示不存在此键名的标签。
标签选择器的使用遵循以下逻辑:
1、同时指定多个标签选择器时,这多个标签选择器的逻辑关系为“与”。
2、使用空值的标签选择器意味着选择每个资源对象。
3、空的标签选择器无法选择出任何资源。
注意,在这里,空的标签选择器和空值的标签选择器具有不同的含义。空的标签选择器即没有标签选择器,而空值的标签选择器则意味着虽然有标签选择器,但是该标签选择器的值为空。
二、标签与标签选择器相关命令
接下来,我就来介绍标签与标签选择器的相关命令:
(一)查看Pod对象的标签
我们在查看Pod对象的基础上,添加上–show-labels参数,可以查看Pod对象的标签,例如,执行命令:
kubectl get pods --show-labels
1
就可以查看当前运行的Pod及其标签,该命令执行结果如下所示:
除此之外,-L参数可以显示Pod对象的指定标签,执行命令:
kubectl get pods -L 【键A】
1
可以显示所有的Pod对象,对含有键A标签的Pod会显示其值,对不含有键A标签的Pod会显示为空。
例如,执行命令:
kubectl get pods -L label1,label2
1
可以显示当前的Pod对象以及其label1和label2标签,该命令执行结果如下:
(二)标签选择器筛选标签
在kubectl命令中,-l参数可以用作标签的筛选,例如,执行命令:
kubectl get pods -l label1,label2
1
可以筛选处同时含有lable1和label2标签的Pod,该命令执行结果如下:
(三)Pod对象创建后添加标签
我们可以在Pod对象创建时就给它指定标签,我们也可以使用label命令在Pod对象创建后添加标签,该命令格式如下:
kubectl label pods/【Pod名】 【标签键】=【标签值】
1
例如,执行命令:
kubectl label pods/pod-demo-test label3=label3
1
可以给pod-demo-test的Pod对象添加label3=label3的标签。该命令执行结果如下所示:
(四)修改Pod对象的标签
除了给已经运行的Pod对象添加标签之外,我们还可以修改Pod对象的标签。该操作也需要使用label命令,并且在最后要添加–overwrite的命令。例如,执行命令:
kubectl label pods/pod-demo-test label3=modify --overwrite
1
可以将该Pod原来的label3=label3修改为label3=modify,该命令执行结果如下:
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/124286570