K8s -- Label

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8s -- Label相关的知识,希望对你有一定的参考价值。

参考技术A

转: https://www.jianshu.com/p/cd6b4b4caaab

Label是Kubernetes系统中的一个核心概念。 Label以key/value键值对的形式附加到任何对象上,如Pod,Service,Node,RC(ReplicationController)/RS(ReplicaSet)等 。Label可以在创建对象时就附加到对象上,也可以在对象创建后通过API进行额外添加或修改。

在为对象定义好Label后,其他对象就可以通过Label来对对象进行引用。Label的最常见的用法便是通过 spec.selector 来引用对象。下面是一个RC的例子:

关于Label的用法重点在于这两步:

我们通常使用 metadata.labels 字段,来为对象添加Label。Label可以为多个。一个简单的例子如下:

上面的描述文件为名为nginx的Pod添加了两个Label,分别为 app: nginx 和 release: stable 。

一般来说,我们会给一个Pod(或其他对象)定义多个Label,以便于配置,部署等管理工作。例如:部署不同版本的应用到不同的环境中;或者监控和分析应用(日志记录,监控,报警等)。通过多个Label的设置,我们就可以多维度的Pod或其他对象进行精细化管理。一些常用的Label示例如下:

带有Label的对象创建好之后,我们就可以通过Label Selector来引用这些对象。

通常我们通过描述文件中的 spec.selector 字段来指定Label,从而Kubernetes寻找到所有包含你指定Label的对象,进行管理。

Kubernetes目前支持两种类型的Label Selector:

上文中创建RC的例子中的使用的就是基于等式的Selector。基于等式的Selector通过等式类的表达式来进行筛选。例如:

基于集合的Selector通过集合操作的表达式来进行筛选。例如:

以上是关于K8s -- Label的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes基础

Kubernetes基础

Kubernetes基础

Kubernetes基础

Kubernetes基础

Kubernetes基础