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

简介: 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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
Kubernetes Perl 容器
k8s标签
k8s标签
256 0
|
Kubernetes 算法 调度
k8s群集调度之 pod亲和 node亲和 标签指定
k8s群集调度之 pod亲和 node亲和 标签指定
1151 152
|
Kubernetes 调度 容器
在K8S中,"节点亲和性"和"节点选择器"的区别在哪里?
在K8S中,"节点亲和性"和"节点选择器"的区别在哪里?
|
Kubernetes 算法 调度
k8s 标签-2
k8s 标签-2
333 2
|
Kubernetes 负载均衡 调度
k8s初始化pod-pod标签
k8s初始化pod-pod标签
275 1
|
运维 Kubernetes Shell
Kubernetes详解(十二)——节点选择器与资源注解
Kubernetes详解(十二)——节点选择器与资源注解
349 2
|
Kubernetes 测试技术 开发工具
云效我标签只有测试环境:但我其实对应了两个k8s集群(测试A,测试B)环境,这种情况怎么处理呢?
云效我标签只有测试环境:但我其实对应了两个k8s集群(测试A,测试B)环境,这种情况怎么处理呢?
332 1
|
Kubernetes 负载均衡 前端开发
揭秘Kubernetes标签和选择器:发挥元数据的威力
揭秘Kubernetes标签和选择器:发挥元数据的威力
揭秘Kubernetes标签和选择器:发挥元数据的威力
|
弹性计算 Kubernetes 前端开发
云原生之容器编排实践-Kubernetes资源管理:标签选择器,注解以及命名空间
云原生之容器编排实践-Kubernetes资源管理:标签选择器,注解以及命名空间
530 0
|
9月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
714 1