Kubernetes – 标签和选择器

标签

标签是一个键值对,可以给pods、复制控制器和服务打标签。标签可以用来组织和选择对象。标签可以在创建时附加到对象上,然后在任何时候添加和修改。每个对象可以定义一组键/值标签。对于给定的对象,每个键必须是唯一的。

例如,下面是一个Pod的配置文件,它有两个标签环境: environment: productionapp: nginx :

apiVersion: v1
kind: Pod
metadata:
  name: label-demo
  labels:
    environment: production
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.7.9
    ports:
    - containerPort: 80

选择器

可以使用标签选择对象。

Kubernetes API目前支持两种类型的选择器

  • 基于等式的选择器 比较标签相同与否,操作符有:==!=
  • 基于集合的选择器 比较标签是否属于某个标签集合,操作符:innotinexists

对象使用标签选择相关资源

一些Kubernetes对象,如服务和复制控制器,可以使用标签选择器来指定其他资源集,如pods。

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  type: NodePort
  ports:
    - port: 81
      targetPort: 80
      nodePort: 30081
  selector:
    app: nginx

在上面的代码中,创建了一个服务,该服务连接到标签为app: nginx的pods。

kubectl命令中使用标签

列出标签为environment=production,tier=frontend的pods:

基于等式:

kubectl get pods -l environment=production,tier=frontend

基于集合:

kubectl get pods -l 'environment in (production),tier in (frontend)'
kubectl get pods -l 'environment in (production, qa)'
kubectl get pods -l 'environment,environment notin (frontend)'


浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载