Label 概述
Label 是 Kubernetes 系统中另一个核心概念。一个 Label 是一个 key=value 的键值对,其中 key 与 value 由用户自己指 定。Label 可以附加到各种资源对象上,如 Node、Pod、 Service、RC,一个资源对象可以定义任意数量的 Label, 同一个 Label 也可以被添加到 任意数量的资源对象上,Label 通常在资源对象定义时确定,也可以在对象创建后动态添加或删除。
Label 的最常见的用法是使用 metadata.labels 字段,来为对象添加 Label,通过 spec.selector 来引用对象。
Label 示例
apiVersion: v1kind: ReplicationController metadata:name: nginx spec:replicas: 3 selector:app: nginx template:metadata:labels: app: nginx spec:containers:- name: nginximage: nginxports:- containerPort: 80-------------------------------------apiVersion: v1kind: Servicemetadata:name: nginxspec:type: NodePortports:- port: 80nodePort: 3333selector:app: nginx
Label 附加到 Kubernetes 集群中各种资源对象上,目的就是对这些资源对象进行分组管理, 而分组管理的核心就 是 Label Selector。Label 与 Label Selector 都是不能单独定义, 必须附加在一些资源对象的定义文件上,一般附加 在 RC 和 Service 的资源定义文件中。
