在 Kubernetes 中,标签(Labels)是用于组织和筛选集群资源的标准键值对。它们可以帮助用户按类别和特性对Pods、Deployments、Services、Nodes等资源进行分类和筛选。
标签可以是一种可以查询的方式描述了应用程序。所以建议有一个比较通用的标签命名规范,以下标签推荐是来自官网。
https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/common-labels/
# 官方推荐标签示例apiVersion: apps/v1kind: StatefulSetmetadata: labels: app.kubernetes.io/name: mysql app.kubernetes.io/instance: mysql-abcxzy app.kubernetes.io/version: "5.7.21" app.kubernetes.io/component: database app.kubernetes.io/part-of: wordpress app.kubernetes.io/managed-by: helm以下是一些标签的示例参考,抛砖引玉。
1.应用的基本信息
labels: app.kubernetes.io/name: <应用名> app.kubernetes.io/instance: <应用实例名> app.kubernetes.io/version: <应用版本>2 应用所在的项目
labels: app.kubernetes.io/part-of: <项目名> app.kubernetes.io/component: <组件名或者模块如backend>3 环境和阶段信息
labels: environment: <开发|测试|预发布|生产> stage: <dev|test|staging|production>4 节点
labels: tier: <应用架构位置> node.kubernetes.io/role: <比如web节点,还是后台服务节点> nodepool: <节点池名> failure-domain.beta.kubernetes.io/zone: <可用区或故障域> topology.kubernetes.io/region: <地理区域>5 自定义标签来表达额外的业务含义
labels: owner: <团队或负责人> cost-center: <成本中心>在实际应用中,我们可以结合实际的业务需求,灵活运用这些标签组合。同时,为了更好的维护和理解资源,建议在创建资源时遵循一定的标签命名规范。