可以为资源在多个不同纬度实现灵活分组的管理功能
版本标签
"release": "stable", "release": "canary", "release": "beta"
架构标签
"tier": "frontend", "tier": "backend", "tier": "cache"
键名通常由键前缀和键名组成
键前缀可选
kubernetes.io/ 前缀预留给Kubernetes核心组件使用
很多object可能有相同的label通过label selector, 客户端可以指定object集合,通过label selector 对object的集合进行操作
多个选择器之间的逻辑关系为与
空值的标签选择器意味着每个资源都会被选上
空的标签选择器将无法选出任何资源
可以使用=
, !=
操作, 逗号分隔多个表达式
=
kubectl get pods -l 'environment=production,tier=frontend'
!=
kubectl get pods -l "env!=qa" -L env
可以使用in
, notin
, exists
操作符
in
kubectl get pods -l 'environment in (production), tier in (frontend)'
notin
kubectl get pods -l 'environment notin (production)'
exists
kubectl get pods -l "env!=qa" -L env
在kubectl get pods --show-labels
的方式调用
-L key1, key2 ....
kubectl get pods -L env,tier
Pod节点选择器时标签以及标签选择器的一种应用,能够让Pod对象基于集群中工作节点的标签来挑选倾向运行的目标节点
piVersion: v1 kind: Pod metadata: name: pod-demo namespace: default labels: app: myapp tier: frontend spec: containers: - name: myapp image: ikubernetes/myapp:v1 ports: - name: http containerPort: 80 - name: https containerPort: 443 - name: busybox image: busybox:latest command: - "/bin/sh" - "-c" - "sleep 3600" nodeSelector: disktype: ssd
指定该pod运行在disktype为ssd的node工作节点上
打标指定节点的disktype为ssd
[root@master ~]# kubectl label nodes node01 disktype=ssd node/node01 labeled
运行在指定节点名称上