1,Label介绍(标签)

Label以key/value键值对的形式附加到任何对象上,如Pod,Service,Node,RC/RS等。Label可以在创建对象时就附加到对象上,也可以在对象创建后通过API进行额外添加或修改。

功能:Label可以通过给指定的资源对象捆绑一个或多个不同的Label来实现多维度的资源分组管理功能,给某个资源对象定义一个Label,就相当于给它打了一个标签,随后可以通过LabelSelector(标签选择器器)查询和筛选拥有某些Label的资源对象,Service就是通过Label将请求负载到后端pod。

2, 示例

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: ng-svc
  5. labels:
  6. name: ng-svc
  7. spec:
  8. ports:
  9. - port: 88
  10. targetPort: 80
  11. protocol: TCP
  12. selector:
  13. # 指定具有app标签,且值为ng-rc 的pod全部纳入本组Service
  14. app: ng-rc
  1. # 通过命令行打标签
  2. kubectl label nodes <nodeName> role=monitor

一些常用的Label示例如下
版本标签:”release”:”stable”,”release”:”canary”…
环境标签:”environment”:”dev”,”environment”:”qa”,”environment”:”oriduction”
架构标签:”tier”:”frontend”,”tier”:”backend”,”tier”:”middleware”
分区标签:”partition”:”customerA”,”partition”:”customerB”…
质量管控标签:”track”:”daily”,”track”:”weekly”