Метки и аннотации
Эта часть руководства по лучшим практикам посвящена использованию меток и аннотаций в чартах.
Метка или аннотация?
Элемент метаданных должен быть меткой, если:
- Он используется Kubernetes для идентификации ресурса
- Он полезен администраторам для запросов к системе.
Например, мы рекомендуем использовать helm.sh/chart: NAME-VERSION в качестве метки, чтобы администраторы могли легко находить все экземпляры определённого чарта.
Если элемент метаданных не используется для запросов, его следует устанавливать как аннотацию.
Хуки Helm всегда являются аннотациями.
Стандартные метки
В таблице ниже перечислены общепринятые метки, используемые в чартах Helm. Сам Helm не требует наличия какой-либо конкретной метки. Метки, отмеченные как REC, являются рекомендуемыми и должны присутствовать в чарте для обеспечения единообразия. Метки, отмеченные как OPT, являются опциональными. Они широко распространены, но редко требуются в рабочих процессах.
| Имя | Статус | Описание |
|---|---|---|
app.kubernetes.io/name | REC | Название приложения целиком. Обычно используется {{ template "name" . }}. Эта метка используется во многих манифестах Kubernetes, не только в Helm. |
helm.sh/chart | REC | Название и версия чарта: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}. |
app.kubernetes.io/managed-by | REC | Всегда устанавливается в {{ .Release.Service }}. Используется для поиска всех ресурсов, управляемых Helm. |
app.kubernetes.io/instance | REC | Устанавливается в {{ .Release.Name }}. Помогает различать разные экземпляры одного и того же приложения. |
app.kubernetes.io/version | OPT | Версия приложения. Может быть установлена в {{ .Chart.AppVersion }}. |
app.kubernetes.io/component | OPT | Общепринятая метка для обозначения роли компонентов в приложении. Например, app.kubernetes.io/component: frontend. |
app.kubernetes.io/part-of | OPT | Используется, когда несколько чартов или программных компонентов вместе составляют единое приложение. Например, прикладное ПО и база данных для создания веб-сайта. Может быть установлена в название приложения верхнего уровня. |
Подробную информацию о метках Kubernetes с префиксом app.kubernetes.io можно найти в документации Kubernetes.