Kubernetes – 标签和选择器

news/2025/3/19 2:43:00/文章来源:https://www.cnblogs.com/wonchaofan/p/18232108

一个名为Kubernetes的开源容器管理平台可自动执行容器的部署、扩展、降级和负载平衡(也称为容器编排工具)。它由 Google 使用 Golang 创建,因此拥有一个相当大的社区。Google 最终将其捐赠给了 CNCF(云原生计算基金会)。本质上,部署是 pod 上方的一层抽象。它类似于 pod 的设计计划。

标签和选择器

在 Kubernetes 中,部署和服务的配置文件中提到了标签和选择器。它们用于将Kubernetes 服务与Kubernetes Pod 连接起来。

 

标签是用于标识该 Pod 的任何键值对。Pod 通过部署获取其标签,部署就像是创建 Pod 之前的 Pod 蓝图。选择器与标签匹配。标签和选择器是必需的,以便在部署、Pod 和服务之间建立连接。

部署被赋予以下格式的标签:

"metadata": 
{"labels": {"key1" : "value1","key2" : "value2"}
}

该服务使用以下格式的选择器来识别 pod 和部署:

"selector":{"key" : "value"}

要查看标签,我们可以使用该命令。

$ kubectl get pods 
--show-labels

 

我们可以在创建 pod 期间附加标签,获取标签,附加标签,甚至在创建 pod 之后添加标签。

要在部署中添加标签,我们可以使用以下命令
$ kubectl label pod <pod_name>label:label_name

 

语法和字符集

在 kubernetes 中,标签和选择器在组织集群对象(它们相互依赖)方面起着重要作用。如果您想要识别 pod 或与 kubernetes 中的任何服务进行互连,则需要使用标签和选择器。

根据您所使用的类型,创建标签和选择器时需要遵循一定的规则和语法。

1. 标签语法

标签是键:值对,它由键和一个值组成,通常是字符串,如下所示。

labels:Key: Valueapp: nginx

键和值区分大小写,最大长度为 63 个字符。

2. 选择器语法

选择器主要分为两种。

  1. 基于平等的选择器。
  2. 基于集合的选择器。
  3. 组合选择器(可选)。

1.基于相等性的选择器

名称本身表明基于平等,其中使用的运算符是=、==以及不等式!=。

例子:

“app = myapp” where app key set to myapp value

2.基于集合的选择器。

根据“in”、“notin”、“exists”和“does not exist”等运算符,它将使用给定的键组输入值,例如

例子:

“ app in (web,api) ”它将知道与键为 app 且值为“web 或 api”的对象匹配

 

3. 组合选择器(可选)

您将使用 AND 或 OR 来组合多个选择器。

例子:

“app = newapp” AND “app = firstapp” 这里将有一个键和两个值来表示键值对。

有效使用标签

标签在 Kubernetes 集群中起着重要作用,用于连接容器、pod 和服务。以下是在创建标签时需要遵循的一些最佳实践。

  1. 选择有意义的标签:标签应该由有意义的名称组成,当将它们分配给任何对象时,它们应该代表您正在创建的对象的用途,并且您不应该在 kubernets 中对标签使用键或保留字。标签示例,您可以使用myapp:prod-environment,就像它代表这个 pod 属于生产环境一样。
  2. 保持一致性:您在 kubernets 集群中创建的标签确保它们在整个集群中保持一致。这将帮助您轻松管理资源。
  3. 唯一标签:标签彼此之间必须非常唯一,否则会在服务、pod 和节点之间产生冲突。
  4. 使用标签进行扩展:将同一服务下的某组 pod 分组,并使用标签一次扩展所有 pod,而不是单独管理它们。
  5. 使用标签进行组织:标签可用于对具有相同功能的 pod 进行分组。

更新标签

一开始,你创建了一组带有特定标签的 pod,一段时间后,由于业务需求,你想更改 pod 的标签,那么你可以使用 CLI 命令来修改,而不是直接在 YAML 文件中进行修改,这是比编辑源文件更好的做法。要更新 pod 的标签,请使用以下命令。

kubectl label pods -l Existing-Key: Existing-value New-Key: New-value

 

 
 
 
 
 
 
 
 
 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720113.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OOP第4-6次作业总结

前言: 这三次作业中第四次作业是对前三次作业答题判题程序的迭代,而从第五次作业开始,则是新的家居强电电路模拟程序题目。就难度而言,第四次作业比第五、六次作业难,第五次作业是家居强电电路模拟程序的开头,所以自然简单,而且第六次作业还减少了两道题目,使得第六次作…

​ChatTTS:Win11本地安装和一键运行包!

ChatTTS 是一个专为交互式语音准备的AI语音合成项目,特点是自然,逼真,可把控声音细节,能说能笑能停顿。 音频播放器00:00 00:00 使用上 / 下箭头键来增高或降低音量。 具体内容,已经在另外的文章中介绍过。本文主要是关注两个点。如何在Windows上安装这个项目。分享一个已…

WPF 稳定的全屏化窗口方法

本文来告诉大家在 WPF 中,设置窗口全屏化的一个稳定的设置方法。在设置窗口全屏的时候,经常遇到的问题就是应用程序虽然设置最大化加无边框,但是此方式经常会有任务栏冒出来,或者说窗口没有贴屏幕的边。本文的方法是基于 Win32 的,由 lsj 提供的方法,当前已在 1000 多万台…

Kubernetes – 容器编排简介

在本文中,我们将研究 Kubernetes 中的容器编排。但首先,让我们探索容器兴起的趋势、容器编排的需求,以及它如何为 Kubernetes 占据主导地位和发展创造空间。 技术渗透到我们日常生活的方方面面,对软件、销售和交付基于软件的产品或仅在业务中使用软件的公司和组织产生了巨大…

Linux学习笔记(2)——ls指令

指令:ls -a: 列出所有文件 -l:以长格式显示指定目标信息 -F:在每个文件末尾加上字符说明该文件类型:@符号链接、|表示FIFOS、/表示目录、=表示套接字 -s:在每个文件前面打印出大小 -t:按时间进行文件排序 -A:列出除了“.”和“..”的文件 -R:将目录下所有子目录的文件列…

KeepassXC Keepass2android WebDav 同步数据库

1:方案介绍 KeepassXC 和 Keepass2android 都是用来存储用户密码数据的应用。KeepassXC 在 Win、Mac、Linux 都可以安装;Keepass2android 在 andorid 安这两个软件都支持 .kdbx 数据库,也就是说 KeepassXC 创建的数据库在 Keepass2android 中也能使用,但问题是数据库如何同…

golang在vscode执行测试用例如何显示测试代码覆盖率?只需要添加几个配置

背景 我们在开发完需求后,需要编写测试用例用于保证代码的正确以及后期变更中预防出现问题,那么如何保证我们的覆盖范围在我们预期,以及如何知道我们的测试用例覆盖了哪些代码呢? 如何实现 我们只需要在测试用例执行后,让ide在代码上渲染出哪些被覆盖哪些没有被覆盖即可,…

六月五日 关于计算机网络RIP和OSPF

今天主要是关于计算机网络的,今天的实验课要完成的是RIP和OSPF配置。 RIP协议(Routing Information Protocol,路由信息协议)是最早的动态路由协议,其原理简单,配置容易。它基于距离矢量算法来计算到达目的网络的最佳路径,通过跳数(hop count)作为度量路由之间的距离,…

小程序体验版加载不出内容如何解决

开发中我们在本地真机测试可以正常加载, 但是上传到体验版,扫码体验就无法正常加载,如何解决? 我们可以扫码后进入小程序页面,点击右上角的三个点, 打开调试模式

分块——优雅的暴力

下面介绍一种暴力,当然呢这种暴力比一般快很多。 先说一下这个暴力的思路。对于一个长度为\(n\)的数组\(a\),可以把数组\(a\)分成\(k\)块,其中每一块的长度为\(len\),当然最后一行除外因为\(n\)可能不是\(k\)的倍数,最后一块的长度可以不是\(len\)。 那么就可以用这些块来…