标签和注释

本部分最佳实践指南讨论了在图表中使用标签和注释的最佳实践。

是标签还是注释?

元数据的项目应在以下情况下为标签

  • 它被 Kubernetes 用于识别此资源
  • 它对操作人员查询系统很有用。

例如,我们建议使用 helm.sh/chart: NAME-VERSION 作为标签,以便操作人员可以方便地找到特定图表的全部实例以供使用。

如果元数据的项目不用于查询,则应将其设置为注释。

Helm 钩子始终为注释。

标准标签

下表定义了 Helm 图表常用的常见标签。Helm 本身并不要求存在特定标签。标记为 REC 的标签是推荐的,并且 *应该* 被放置到图表中以实现全局一致性。标记为 OPT 的标签是可选的。这些是惯用法或常用的,但在操作目的方面并不经常依赖。

名称状态描述
app.kubernetes.io/nameREC这应该是应用程序名称,反映整个应用程序。通常 {{ template "name" . }} 用于此。这被许多 Kubernetes 清单使用,并且不是 Helm 特定的。
helm.sh/chartREC这应该是图表名称和版本: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
app.kubernetes.io/managed-byREC这应该始终设置为 {{ .Release.Service }}。它是用于查找所有由 Helm 管理的内容。
app.kubernetes.io/instanceREC这应该是 {{ .Release.Name }}。它有助于区分同一应用程序的不同实例。
app.kubernetes.io/versionOPT应用程序的版本,可以设置为 {{ .Chart.AppVersion }}
app.kubernetes.io/componentOPT这是一个常见的标签,用于标记部分可能在应用程序中扮演的不同角色。例如,app.kubernetes.io/component: frontend
app.kubernetes.io/part-ofOPT当多个图表或软件部分一起使用以构成一个应用程序时。例如,应用程序软件和数据库以生成网站。这可以设置为被支持的顶层应用程序。

您可以在 Kubernetes 文档 中找到更多关于以 app.kubernetes.io 为前缀的 Kubernetes 标签的信息。