首页 > 其他分享 >Kubernetes--标签选择器(标签)

Kubernetes--标签选择器(标签)

时间:2022-10-22 16:33:55浏览次数:64  
标签:键名 -- 标签 production env tier 选择器

标签选择器用于表达标签的查询条件或选择标准,Kubernetes API目前支持两个选择器:基于等值关系(equality-based)以及基于集合关系 (set-based)。例如,env=production和env!=qa是基于等值关系的选择器,而tier in(frontend,backend)则是基于集合关系的选择器。另外,使用标签选择器时还将遵循以下逻辑。

(1)同时指定的多个选择器之间的逻辑关系为 “与” 操作。

(2)使用空值的标签选择器意味着每个资源对象都将被选中。

(3)空的标签选择器将无法选出任何资源。

基于等值关系的标签选择器的可用操作符有 “=” “==” 和 “!=” 三种,其中前两个意义相同,都表示 “等值” 关系,最后一个表示 “不等” 关系。“kubectl get” 命令的 “-l” 选项能够指定使用标签选择器,例如显示键名env的值不为qa的所有Pod对象:


kubectl get pods -l "env!=qa" -L env
NAME                               READY   STATUS             RESTARTS   AGE   ENV
pod-example                        1/1     Running            2          4h    production
pod-with-labels                    1/1     Running            0          40m   testing

  再例如,显示标签键名env的值不为qa,且标签键名tier的值为frontend的所有Pod对象:

kubectl get pods -l "env!=qa,tier=frontend" -L env,tier
NAME              READY   STATUS    RESTARTS   AGE   ENV       TIER
pod-with-labels   1/1     Running   0          35d   testing   frontend

  

基于集合关系的标签选择器支持in、notin和exists 三种操作符,它们的使用格式及意义具体如下。

  • KEY in (VALUE1,VALUE2,···):指定的键名的值存在于给定的列表中即满足条件。

  • KEY notin (VALUE1,VALUE2,···):指定的键名的值不存在于给定的列表中即满足条件。

  • KEY:所有存在此键名标签的资源。

  • !KEY:所有不存在此键名标签的资源。

例如,显示标签键名env的值为production或dev的所有Pod对象:

kubectl get pods -l "env in (production,dev)" -L env
NAME              READY   STATUS    RESTARTS   AGE   ENV
pod-example       1/1     Running   2          4h    production

  再如,列出标签键名env的值为production或dev,且不存在键名为tier的标签的所有Pod对象:

kubectl get pods -l 'env in (production,dev),!tier' -L env,tier
NAME              READY   STATUS    RESTARTS   AGE   ENV       TIER
pod-example       1/1     Running   2          4h    production

注意:为了避免shell解释器解析叹号(!),必须要为此类表达式使用单引号。

此外,Kubernetes的诸多资源对象必须以标签选择器的方式关联到Pod资源对象,比如Service、Deployment和ReplicaSet类型的的资源等,它们在sepc字段中嵌套使用嵌套的“selector”字段,通过“matchLabels”来指定标签选择器,有的甚至还支持使用“matchExpressions”构造复杂的标签选择机制。

  • matchLabels:通过直接给定键值对来指定标签选择器。
  • matchExpressions:基于表达式指定的标签选择器列表,每个选择器都形如“{key:KEY_NAME, operator:OPERATOR,values:[VALUE1, VALUE2,···]}”,选择器列表间为“逻辑与”关系;使用In或NotIn操作符时,其values不强制要求为非空的字符串列表,而使用Exists或DostNotExist,其values必须为空。

下面所示的资源清单片段是一个示例,它同事定义了两类标签选择器:

selector
  matchLabels:
    component:redis
  matchExpressions:
    - {key:tier,operator:In,values:[cache]}
    - {key:environment,operator:Exists,values:}

  标签赋予了Kubernetes灵活操作资源对象的的能力,它也是Service和Deployment等核心资源类型得以实现的基本前提。


 

标签:键名,--,标签,production,env,tier,选择器
From: https://www.cnblogs.com/zhangxin9/p/16816370.html

相关文章

  • P8201 生活在树上(hard version)
    这是一篇大量利用STL的题解。1、题意转化原题说了非常多的路径费用定义,不妨直接画图来研究一下:手摸一下可以发现,对于上图中\(t_1\)、\(t_2\)、\(t_3\)、\(t_4\)四个......
  • HTML标签-表单标签-表单项input1和HTML标签-表单标签-表单项input2
    HTML标签-表单标签-表单项input1表单项标签:input:可以通过type属性值,改变元素展示的样式type属性:text:文本输出框,默认值place......
  • 操作表-查询、创建、删除、修改
     操作数据库:CRUD1.C(Create):创建语法格式:createtable表名(列名1数据类型1,列名2数据类型2,......列名n数据类型n);注意......
  • Matlab创建文字云
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 防火墙基础之交换机与防火墙安全防护区域之间隔离​
    防火墙基础之交换机与防火墙安全防护区域之间隔离​原理概述:​防火墙(英语:Firewall)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之......
  • fullsdk和public-SDK区别
    今天在使用远程启动FA的时候,要用到fullsdkpublic-SDK是提供给应用开发的工具包,跟随DevEcoStudio下载,不包含系统应用所需要的高权限APIfull-SDK是提供给OEM厂商开发应用的工......
  • 一些重要实用指令的记录
    9.1运行级别基本介绍运行级别说明:0:关机1:单用户【类似安全模式,这个模式可以帮助找回root密码】2:多用户状态没有网络服务3:多用户状态有网络服务【使用最多】4:系统......
  • Openharmony文件路径使用
    文件路径使用Openharmony上用户数据统一由媒体库进行管理,用户数据用户数据可以通过mediaLibrary提供的接口能力进行访问和操作。公共目录路径支持的文件格式在使用文件路径......
  • 组管理和权限管理
    10.1Linux组的基本介绍在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。  1)所有者  2)所在组  3)其它组......
  • java 复杂对象数组练习 添加和遍历
       Javabeanpackagetest_4;publicclassStudent{privateintid;privateStringname;privateintage;publicStudent(){}publicStu......