K8s labels 与 annotations 区别

核心区别(一句话)

  • Labels:给 K8s"用来筛选/归类/选择"的标签(会参与 selector)。
  • Annotations:给"系统/插件/人"附加的扩展信息(不用于 selector)。

具体对比

  • 是否可被 selector 使用
  • labels:可以(Service、Deployment、NetworkPolicy 等靠它选 Pod)
  • annotations:不可以(K8s 不支持用 annotation 做 selector)
  • 典型用途
  • labels:应用/版本/环境分组(app=redis、tier=backend、env=prod)
  • annotations:配置与元信息(Ingress 配置、CNI 写入的 Pod IP/网卡信息、Prometheus 抓取开关、变更原因/工单号)
  • 稳定性与管理方式
  • labels:更应保持简短、稳定、规范化(会影响大量对象匹配关系)
  • annotations:可更灵活、可较长、可结构化(甚至 JSON),常被控制器/插件读写

选择建议

  • 需要被"查找/选择/分组"(会进入各种 selector)→ 用 label
  • 只是记录"配置/上下文/扩展信息"(不参与选择)→ 用 annotation
相关推荐
j200103226 天前
Gateway—— 高级流量路由
gateway·k8s
西门吹雪分身8 天前
K8S之Ingress
java·容器·kubernetes·k8s
小义_8 天前
【Kubernetes】(二)k8s基础
linux·云原生·k8s
小义_10 天前
【Kubernetes】(一)k8s基础
云原生·k8s
hrhcode10 天前
【云原生】三.Kubernetes核心对象(上):Pod与Label详解
云原生·k8s
hrhcode11 天前
【云原生】六.Kubernetes存储与配置管理:ConfigMap、Secret与持久化存储
云原生·kubernetes·k8s
人间打气筒(Ada)11 天前
Kubernetes核心技术-namespace & label
云原生·kubernetes·云计算·k8s·devops·namespace·label
hrhcode12 天前
【云原生】四.Kubernetes核心对象(下):Deployment、Service与Namespace
云原生·k8s
hrhcode13 天前
【云原生】二.Kubernetes基础入门:架构详解与环境搭建
云原生·k8s
西门吹雪分身14 天前
K8S之Pod调度
java·容器·kubernetes·k8s