说明
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进行组合,使用逗号”,”进行分隔即可。例如: