Kubernetes--标签选择器(标签)
标签选择器用于表达标签的查询条件或选择标准,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等核心资源类型得以实现的基本前提。
Kubernetes--标签选择器(标签)的更多相关文章
- python 全栈开发,Day46(列表标签,表格标签,表单标签,css的引入方式,css选择器)
一.列表标签 列表标签分为三种. 1.无序列表<ul>,无序列表中的每一项是<li> 英文单词解释如下: ul:unordered list,“无序列表”的意思. li:lis ...
- 前端1-----CSS层叠样式表了解,css的引入方式,三大选择器(标签,类,id),高级选择器
前端1-----CSS层叠样式表了解,css的引入方式,三大选择器(标签,类,id),高级选择器 一丶CSS简介 叠样式表(英文全称:Cascading Style Sheets)是一种用来表现 ...
- K8S调度之标签选择器
Kubernetes 调度简介 除了让 kubernetes 集群调度器自动为 pod 资源选择某个节点(默认调度考虑的是资源足够,并且 load 尽量平均),有些情况我们希望能更多地控制 pod 应 ...
- 容器编排系统之K8s资源标签、标签选择器、资源注解
前文我们聊到了使用k8s资源配置清单定义资源的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14132890.html:今天我们来聊下资源标签,标签选 ...
- 008.kubernets的调度系统之标签选择器
一 Kubernetes 调度简介 除了让 kubernetes 集群调度器自动为 pod 资源选择某个节点(默认调度考虑的是资源足够,并且 load 尽量平均),有些情况我们希望能更多地控制 pod ...
- jQuery标签选择器
$(function() { //alert("hello jquery"); //选择器 //id选择器 $("#bt1").click( function( ...
- CSS标签选择器(二)
一.CSS选择器概述 1.1.CSS功能 CSS语言具有两个基本功能:匹配和渲染 当浏览器在解析CSS样式时,首先应该确定哪些元素需要渲染,即匹配哪些HTML元素,这个操作由CSS样式中的选择器负责标 ...
- css标签选择器
/*标签选择器*/ input[type="text"] { width: 60%; } </style>
- jquery基本选择器:id选择器、class选择器、标签选择器、通配符选择器
全栈工程师开发手册 (作者:栾鹏) jquery系列教程1-选择器全解 jquery基本选择器 jquery基本选择器,包括id选择器.class选择器.标签选择器.通配符选择器,同时配合选择器的空格 ...
- H5 标签选择器
08-标签选择器 我是段落 我是段落 我是段落 我是段落 我是段落 我是标题 <!DOCTYPE html> <html lang="en"> <he ...
随机推荐
- sync/atomic 原子操作使用与解析
目录 前言 1. 引入 2. sync.atomic 原子操作 2.1 什么是原子操作 2.2 各种 API 的作用 2.2.1 Store 操作 2.2.2 Load 操作 2.2.3 Add 操作 ...
- Autodesk Maya2023 破解版安装教程(小白看了也说understand)
前言 Maya是Autodesk旗下的著名三维建模和动画软件,应用对象是专业的影视广告,角色动画,电影特技等.Maya功能完善,工作灵活,制作效率极高,渲染真实感极强,是电影级别的高端制作软件. 安装 ...
- P22_条件渲染
条件渲染 wx:if 在小程序中,使用 wx:if="{{condition}}" 来判断是否需要渲染该代码块: 也可以用 wx:elif 和 wx:else 来添加 else 判 ...
- 记录一次vue部署docker步骤
vue部署docker 拉取nginx镜像 docker pull nginx 有Dockerfile文件步骤: 1.打包vue npm run build 2.写一个default.conf 文件, ...
- C++ 练习11 string的使用
1 #include <iostream> 2 #include<string>//调用string函数库 3 using namespace std; 4 int main( ...
- scrapy的pipline的不同操作
针对json文件 import json import os class SpyOppoPipeline: def __init__(self): self.file = open('曹姐.json' ...
- Android:Fragment 和 include 标签引入布局的区别
Fragment 存在于 Activity 中,但是 Fragment 管理自己的界面和逻辑,表面上看,Fragment 最终的布局还是要被压入到 Activity 中的布局中.03#Android ...
- 02#Web 实战:实现树形控件
前言 这是一篇个人练习 Web 前端各种常见的控件.组件的实战系列文章.本篇文章将介绍个人通过 JQuery + 无序列表 + CSS 动画完成一个简易的树形控件. 最终实现的效果是: 这样结构比较复 ...
- CSS 子代选择器(>)
后代选择器 后代选择器?是一种多个用空格分隔的选择器,别称包含选择器.范围是当前节点的所有子节点,包括其直接子节点. div#app下的所有 div 元素都使用下面的样式: div#app div { ...
- LeetCode-807 保持城市天际线
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline 题目描述 在二维数组grid ...