label

Label 是用于标识 Kubernetes 对象,以 key/value 的方式附加到对象上。

key 最长不能超过 63 字节,value 是不超过 253 字节的字符串。

pod和node等Kubernetes对象都可以带有标签

pod与标签

创建pod时,可以带有标签,命令参考如下

kubectl run pod1 --image=nginx --generator=run-pod/v1 --labels func=web

创建有多个标签的pod

kubectl run pod1 --image=nginx --generator=run-pod/v1 --labels func=web,disk=ssid

查看pod的yaml文件

kubectl get pod pod1 -o yaml | more

以标签过滤pod

kubectl get pods -l func=web

node与标签

node也可以有标签。查看节点当前的标签

kubectl get nodes --show-labels

将标签添加到你所选择的节点上

kubectl label nodes <node-name> <label-key>=<label-value>

标签选择器(Label Selector)

标签定义好之后,其他对象可以使用标签选择器来选择一组相同标签的对象, 比如 ReplicaSet来选择一组 Pod,来确定数量是否创建够。标签选择器支持以下几种方式:

  • 等式或不等式,如 app=redis 和 env!=production

  • 集合,如 env in (production, qa)