kubernetes:Labels and Selectors

2024-03-26 14:08
文章标签 kubernetes labels selectors

本文主要是介绍kubernetes:Labels and Selectors,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是Lable

标签是附加到对象(如pod)的键/值对。标签用于指定对象的标识属性,这些属性对用户有意义且相关,但不直接向核心系统暗示语义。标签可用于组织和选择对象的子集。标签可以在创建时附加到对象,然后可以随时添加和修改。每个对象都可以定义一组键/值标签。对于给定的对象,每个键必须是唯一的

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

Kubernetes最终将对labels最终索引和反向索引用来优化查询和watch,在UI和命令行中会对它们排序。不要在label中使用大型、非标识的结构化数据,记录这样的数据应该用annotation

Lable出现的原因
Label能够将组织架构映射到系统架构上(就像是康威定律),这样能够更便于微服务的管理,可以给object打上如下类型的label

-“release” : “stable”, “release” : “canary”
-“environment” : “dev”, “environment” : “qa”, “environment” : “production”
-“tier” : “frontend”, “tier” : “backend”, “tier” : “cache”
-“partition” : “customerA”, “partition” : “customerB”
-“track” : “daily”, “track” : “weekly”

语法和字符集

abel是键/值对。有效的标签键有两个段:可选的前缀和名称,用斜线(/)分隔。名称段是必需的,必须不超过63个字符,以字母数字字符([A-Z0-9A-Z])开头和结尾,中间有破折号(-)、下划线(u)、点(.)和字母数字。前缀是可选的。如果指定,前缀必须是DNS子域:由点(.)分隔的一系列DNS标签,总共不超过253个字符,后跟斜杠(/)。

如果省略前缀,则标签密钥被假定为用户专用。向最终用户对象添加标签的自动化系统组件(例如kube调度器、kube控制器管理器、kube apiserver、kubectl或其他第三方自动化)必须指定前缀。

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

有效的标签值必须不超过63个字符,并且必须为空,或者以字母数字字符([A-Z0-9A-Z])开头和结尾,中间带有破折号(-)、下划线(u)、点(.)和字母数字。
举例

apiVersion: v1
kind: Pod
metadata:name: label-demolabels:environment: productionapp: nginx
spec:containers:- name: nginximage: nginx:1.7.9ports:- containerPort: 80

Label selector
Label不是唯一的,很多object可能有相同的label。
通过label selector,客户端/用户可以指定一个object集合,通过label selector对object的集合进行操作。
Label selector有两种类型:

equality-based :可以使用=、==、!=操作符,可以使用逗号分隔多个表达式
set-based :可以使用in、notin、!操作符,另外还可以没有操作符,直接写出某个label的key,表示过滤有某个key的object而不管该key的value是何值,!表示没有该label的object

使用

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

API使用 label selector

1.在service、replicationcontroller等object中有对pod的label selector,使用方法只能使用等于操作,例如:

selector:component: redis
  1. Job, Deployment, Replica Set, Daemon Set 类型支持set-based 操作
selector:matchLabels:component: redismatchExpressions:- {key: tier, operator: In, values: [cache]}- {key: environment, operator: NotIn, values: [dev]}

matchlabels是{key,value}对的映射。matchlabels映射中的单个{key,value}等价于matchexpressions的元素,其键字段为“key”,运算符为“in”,值数组仅包含“value”。matchexpressions是pod选择器需求的列表。有效的运算符包括in、notin、exists和doesnotexist。对于in和notin,设置的值必须为非空。matchlabels和matchexpressions中的所有要求都被放在一起-必须满足所有这些要求才能匹配

这篇关于kubernetes:Labels and Selectors的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848763

相关文章

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

什么是Kubernetes PodSecurityPolicy?

@TOC 💖The Begin💖点点关注,收藏不迷路💖 1、什么是PodSecurityPolicy? PodSecurityPolicy(PSP)是Kubernetes中的一个安全特性,用于在Pod创建前进行安全策略检查,限制Pod的资源使用、运行权限等,提升集群安全性。 2、为什么需要它? 默认情况下,Kubernetes允许用户自由创建Pod,可能带来安全风险。

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

kubernetes集群部署Zabbix监控平台

一、zabbix介绍 1.zabbix简介 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。 2.zabbix特点 (1)安装与配置简单。 (2)可视化web管理界面。 (3)免费开源。 (4)支持中文。 (5)自动发现。 (6)分布式监控。 (7)实时绘图。 3.zabbix的主要功能

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

【Kubernetes】常见面试题汇总(一)

目录 1.简述 etcd 及其特点? 2.简述 etcd 适应的场景? 3.简述什么是Kubernetes? 4.简述 Kubernetes和 Docker的关系? 1.简述 etcd 及其特点? (1)etcd 是Core0s 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(keyvalue)数据

什么是Kubernetes准入机制?

什么是Kubernetes准入机制? 1、工作原理2、常用组件 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的准入机制是API请求处理前的一道重要安全屏障。它通过一系列预定义的准入控制组件,对请求进行拦截和检查,确保只有合法且符合规范的请求才能继续执行。 1、工作原理 认证与授权:首先,请求者需要通过身份认证和权限授权。准入控制:随后

什么是Kubernetes RBAC?

什么是Kubernetes RBAC? 1、什么是RBAC?2、核心组件3、优势 💖The Begin💖点点关注,收藏不迷路💖 在Kubernetes集群中,RBAC(基于角色的访问控制)是保障系统安全的关键。它通过角色和绑定管理不同实体对资源的访问权限,具有显著优势: 1、什么是RBAC? RBAC是Kubernetes中用于控制访问权限的机制,通过定义