Kubernetes详解(十一)——标签与标签选择器

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: Kubernetes详解(十一)——标签与标签选择器

今天继续给大家介绍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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
Kubernetes Perl 容器
k8s标签
k8s标签
|
3月前
|
Kubernetes 调度 容器
在K8S中,"节点亲和性"和"节点选择器"的区别在哪里?
在K8S中,"节点亲和性"和"节点选择器"的区别在哪里?
|
4月前
|
Kubernetes 算法 调度
k8s 标签-2
k8s 标签-2
32 2
|
4月前
|
Kubernetes 负载均衡 调度
k8s初始化pod-pod标签
k8s初始化pod-pod标签
49 1
|
6月前
|
运维 Kubernetes Shell
Kubernetes详解(十二)——节点选择器与资源注解
Kubernetes详解(十二)——节点选择器与资源注解
94 2
|
6月前
|
Kubernetes 算法 调度
k8s群集调度之 pod亲和 node亲和 标签指定
k8s群集调度之 pod亲和 node亲和 标签指定
|
6月前
|
Kubernetes 测试技术 开发工具
云效我标签只有测试环境:但我其实对应了两个k8s集群(测试A,测试B)环境,这种情况怎么处理呢?
云效我标签只有测试环境:但我其实对应了两个k8s集群(测试A,测试B)环境,这种情况怎么处理呢?
145 1
|
Kubernetes 负载均衡 前端开发
揭秘Kubernetes标签和选择器:发挥元数据的威力
揭秘Kubernetes标签和选择器:发挥元数据的威力
揭秘Kubernetes标签和选择器:发挥元数据的威力
|
弹性计算 Kubernetes 前端开发
云原生之容器编排实践-Kubernetes资源管理:标签选择器,注解以及命名空间
云原生之容器编排实践-Kubernetes资源管理:标签选择器,注解以及命名空间
290 0
|
22天前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景