首页 > 其他分享 >Kubernetes-标签

Kubernetes-标签

时间:2022-09-04 00:22:31浏览次数:85  
标签:算符 前缀 Kubernetes 标签 environment production

Kubernetes 标签

什么是 Kubernetes 标签

标签(Labels)是附加到 Kubernetes 对象(比如 Pods)上的键值对。

标签示例如下:

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

标签作用

  • 标签旨在用于指定对用户有意义且相关的对象的标识属性,但不直接对核心系统有语义含义。
  • 标签可以用于组织和选择对象的子集。

标签特点

  • 每个对象都可以定义一组键/值标签。
  • 每个键对于给定对象必须是唯一的。
  • 标签能够支持高效的查询和监听操作,对于用户界面和命令行是很理想的。

设计标签的目的

标签使用户能够以松散耦合的方式将他们自己的组织结构映射到系统对象,而无需客户端存储这些映射。

服务部署和批处理流水线通常是多维实体(例如,多个分区或部署、多个发行序列、多个层,每层多个微服务)。管理通常需要交叉操作,这打破了严格的层次表示的封装,特别是由基础设施而不是用户确定的严格的层次结构。

示例标签:

  • 发行版本 "release" : "stable", "release" : "canary"
  • 运行环境 "environment" : "dev", "environment" : "qa", "environment" : "production"

标签语法

有效的标签键有两个段:可选的前缀和名称,用斜杠(/)分隔。

名称段是必需的,必须小于等于 63 个字符,以字母数字字符([a-z0-9A-Z])开头和结尾,带有破折号(-),下划线(_),点( .)和之间的字母数字。

前缀是可选的。如果指定,前缀必须是 DNS 子域:由点(.)分隔的一系列 DNS 标签,总共不超过 253 个字符,后跟斜杠(/)。

如果省略前缀,则假定标签键对用户是私有的。向最终用户对象添加标签的自动系统组件(例如 kube-scheduler、kube-controller-manager、 kube-apiserver、kubectl 或其他第三方自动化工具)必须指定前缀。

kubernetes.io/ 和 k8s.io/ 前缀是为 Kubernetes 核心组件保留的。

有效标签值:

  • 必须为 63 个字符或更少(可以为空)
  • 除非标签值为空,必须以字母数字字符([a-z0-9A-Z])开头和结尾
  • 包含破折号(-)、下划线(_)、点(.)和字母或数字

以下是一个有 environment: production 和 app: nginx 标签的 Pod 配置文件:

apiVersion: v1
kind: Pod
metadata:
  name: label-demo
  labels:
    environment: production
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80

标签选择运算符

与名称和 UID 不同,标签不支持唯一性。通常,我们希望许多对象携带相同的标签。

通过标签选择算符,客户端/用户可以识别一组对象。标签选择算符是 Kubernetes 中的核心分组原语。

在多个需求的情况下,必须满足所有要求,因此逗号分隔符充当逻辑与(&&)运算符。

基于等值的需求

基于等值或基于不等值的需求允许按标签键和值进行过滤。匹配对象必须满足所有指定的标签约束,尽管它们也可能具有其他标签。可接受的运算符有 =、== 和 != 三种。前两个表示相等(并且是同义词),而后者表示不相等。

例如:

environment = production
tier != frontend

基于集合的需求

基于集合的标签需求允许你通过一组值来过滤键。 持三种操作符:in、notin 和 exists(只可以用在键标识符上)。

例如:

environment in (production, qa)
tier notin (frontend, backend)
partition
!partition

API

两种标签选择算符都可以通过 REST 客户端用于 list 或者 watch 资源。

基于等值的需求

例如,使用 kubectl 定位 apiserver,可以使用基于等值的标签选择算符可以这么写:

kubectl get pods -l environment=production,tier=frontend

基于集合的需求

或者使用基于集合的需求:

kubectl get pods -l 'environment in (production),tier in (frontend)'

参考资料

思维导图

Kubernetes-标签-思维导图.png

视频学习

B站学习

从零开始学习k8s:k8s标签

Kubernetes-标签-B站.png

抖音学习

Kubernetes-标签-抖音.png

标签:算符,前缀,Kubernetes,标签,environment,production
From: https://www.cnblogs.com/cnymw/p/16654078.html

相关文章

  • VScode设置标签中的属性自动换行
    问题描述很多时候,在编写Vue代码时经常需要添加很多的属性,往往这时候就会采用一个属性一行的代码格式,但是格式化代码又会将其合并为一行,如果每次都手动进行换行,又会非常影......
  • ASP.NET Core 实战-8.使用标签助手构建表单
    显示动态数据是许多Web应用程序的一个重要方面,但它通常只是故事的一半。除了向用户显示数据之外,您通常还需要用户能够将数据提交回您的应用程序。例如,您可以使用数据来......
  • HTML——hr标签&注释
    hr标签:添加水平线<html><body><p>hr标签定义水平线:</p><hr/><p>这是段落。</p><hr/><p>这是段落。</p><hr/><p>这是段落。</p></body></html>注释:可......
  • HTML——br标签
    <br/>标签:如果您希望在不产生一个新段落的情况下进行换行(新行),请使用<br/>标签:<br>还是<br/>您也许发现<br>与<br/>很相似。在XHTML、XML以及未来的HTML......
  • kubernetes 1.18安装
    准备环境:主机名(centos7)IP地址角色node01192.168.254.101masternode02192.168.254.102nodenode03192.168.254.103node注意:一定要修改hosts解析,否......
  • Vue的列表超链接(A标签)是什么?如何实现跳转呢?
    方法一:通过<router-link:to="">我要跳转,别拦我</router-link>首页列表:在这里我用a标签进行跳转,在vue里面使用<router-link></router-link>  //注意:这里的router-lin......
  • 表格标签与表单标签和css层贴样式表(选择器)(2)
    表格标签<table><thead><tr>一个tr就表示一行<th>username</th>加粗文本<td>username</td>......
  • HTML标签
    一、HTML概述HTML:HyperTextMarkupLanguage,超文本标记语言。是用来帮助我们构建网页的。【超文本】:网页本身是一个文本文件,而超文本指的是这种文件中既可以包含文本信......
  • web服务本质与HTTP和常用标签(1)
    web的本质"""浏览器服务端文件(html文件)"""HTTP协议"""HTTP协议的由来(sql语句由来)浏览器只有一个如何兼容N多个服务端"""#四大特性1基于请求......
  • html标签补充
    html中有很多标签在平常操作中总是用到,还有一部分不怎么用,甚至不知道还有这个标签?为了实现标签的效果用了好多css样式,最后也得不偿失,下面说一说都有哪些标签且现在H5可以用......