k8s-label标签、label selector标签选择器

说明

Label是kubernetes系统中的一个重要概念。作用就是在资源上添加 标识,用来对资源进行区分和选择。

特点:

  • 一个Label会以 key/value 键值对的形式附加到各种对象上,如Node、Pod、Service等等

  • 一个资源对象可以定义 任意数量 的Label ,同一个Label也可以被添加到任意数量的资源对象上去

  • Label通常在资源对象定义时确定,当然也可以在对象创建后动态添加或者删除

可以通过Label实现资源的 多维度分组,以便灵活、方便地进行资源分配、调度、配置、部署等管理工作。

常用的Label

如下:

  • 版本标签:”version”:”release”, “version”:”stable”……

  • 环境标签:”env”:”dev”,”env”:”test”,”env”:”pro”

  • 架构标签:”tier”:”frontend”,”tier”:”backend”

Label Selector 标签选择器

标签定义完毕之后,还要考虑到标签的选择,这就要使用到 Label Selector,即:

Label用于给某个资源对象定义标识

Label Selector用于查询和筛选拥有某些标签的资源对象

有两种Label Selector

  • 基于等式的Label Selector

  • 基于集合的Label Selector

基于等式的Label Selector

  • env = dev: 选择所有包含Label中 key="env" 且value="dev" 的对象
  • env != pro: 选择所有包括Label中的key="env" 且 value不是"pro" 的对象

基于集合的Label Selector

  • tier in (frontend, backend): 选择所有包含Label中的key="tier" 且 value="frontend"或"backend" 的对象

  • tier not in (frontend): 选择所有包含Label中的key="tier" 且 value不等于"frontend" 的对象

标签的选择条件可以使用多个,此时将多个Label Selector进行组合,使用逗号”,”进行分隔即可。例如:


原文出处:/show_1IX6KSdO7YSq.html