Облачная платформаAdvanced

Настройка меток и аннотаций

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Для поддержки многомерного управления метаданными Kubernetes предлагает метки и аннотации. Они оба прикрепляют метаданные к ресурсам в формате пар ключ-значение, но их цели и варианты использования существенно различаются.

  • Метки используются для идентификации и классификации объектов Kubernetes. Они следуют структурированному формату пар ключ-значение (например, app=frontend) и может использоваться для эффективного выбора ресурсов с помощью селекторов. Они напрямую влияют на планирование и управление ресурсами. Ключ и значение метки должны соответствовать правилам именования и обычно представляют постоянные атрибуты ресурса, такие как версия.
  • Аннотации служат для расширения функциональности и хранения дополнительных метаданных. Они поддерживают гибкие форматы данных (например JSON или многострочный текст). Они не используются для выбора ресурсов и не влияют на планирование.

Как метки, так и аннотации применяются к различным типам ресурсов Kubernetes. В этом разделе будет подробно рассмотрено их использование в подах.

Метки Под

Метки Под позволяют интеллектуально ассоциировать ресурсы. После того как метки добавлены к Подам, другие ресурсы Kubernetes могут точно идентифицировать и ассоциировать эти Поды с помощью селекторов меток. Ключи и значения меток должны соответствовать определённым правилам именования. Для получения подробной информации смотрите Синтаксис и набор символов. Для примера, вы можете добавить следующую метку к двум рабочим нагрузкам (App 1 и App 2) соответственно:

  • App 1: release=alpha
  • App 2: release=beta

Когда App 3 создаётся с аффинити нагрузки release=alpha, Kubernetes попытается разместить App 3 на том же узле, что и App 1, или на другом узле, соответствующем этой аффинити. Это обеспечивает интеллектуальное совместное развертывание между App 1 и App 3. Для получения подробной информации смотрите Настройка планирования аффинити или анти-аффинити рабочей нагрузки (podAffinity или podAntiAffinity).

Вы можете добавить метки к Поду, используя консоль или YAML.

Добавление метки Под с помощью консоли

При создании или обновлении рабочей нагрузки в консоли CCE вы можете добавить метка Под нажав Метки и Аннотации в Расширенные настройки область. Эта метка помогает идентифицировать Под в кластере. Во время создания рабочей нагрузки CCE по умолчанию добавит метку, показанную на рисунке ниже, к Поду рабочей нагрузки. Значение app это имя рабочей нагрузки.

Добавление метки Под с использованием YAML

При создании или обновлении рабочей нагрузки вы можете добавить метку Под в следующей области YAML файла:

...
spec:
selector:
matchLabels:
app: nginx
version: v1
template:
metadata:
labels:
app: nginx
version: v1
spec:
...

Аннотации Под

CCE предоставляет некоторые расширенные функции для pod'ов. Эти функции могут быть реализованы путем добавления аннотаций в файлы YAML. Вы можете добавить аннотации к pod'у, используя консоль или YAML.

Добавление аннотации Pod с использованием консоли

При создании или обновлении рабочей нагрузки в консоли CCE вы можете добавить аннотация pod нажав Меткки и аннотации в Дополнительные настройки области для включения расширенных функций для pod'а.

Например, чтобы отключить сбор стандартных выводов логов контейнера для pod'а, установите аннотацию pod в kubernetes.AOM.log.stdout='[]' и нажмите Подтвердить.

Добавление аннотации Pod с использованием YAML

При создании или обновлении рабочей нагрузки с использованием YAML вы можете использовать аннотации параметр для включения расширенных pod-функций.

Например, вы можете использовать аннотации чтобы отключить сбор журналов стандартного вывода контейнера для pod:

...
spec:
replicas: 1 # Number of pods
selector:
matchLabels: # Selector for selecting resources with specific labels
app: nginx
template:
metadata:
labels: # Labels
app: nginx
annotations:
kubernetes.AOM.log.stdout: '[]'
...

Типичные аннотации Pod

Таблица 1 предоставляет некоторые часто используемые аннотации. Вы можете добавлять аннотации для pods по требованию.

Таблица 1 Аннотации Pod

Аннотация

Описание

Значение по умолчанию

kubernetes.AOM.log.stdout

Настройка сбора журналов стандартного вывода для контейнеров. Если не указано, журналы стандартного вывода со всех контейнеров будут автоматически отправлены в AOM по умолчанию. Вы можете настроить эту аннотацию, чтобы собирать журналы стандартного вывода только из указанных контейнеров или отключить сбор журналов стандартного вывода для всех контейнеров.

Пример:

  • Отключение сбора логов стандартного вывода для всех контейнеров:
    kubernetes.AOM.log.stdout: '[]'
  • Сбор логов стандартного вывода из container-1 и container-2:
    kubernetes.AOM.log.stdout: '["container-1","container-2"]'

N/A

metrics.alpha.kubernetes.io/custom-endpoints

Настройка отчётности метрик AOM, позволяющая отправлять указанные метрики в AOM.

Для получения подробностей см. Мониторинг пользовательских метрик в AOM.

N/A

prometheus.io/scrape

Настройка отчётности метрик Prometheus, позволяющая отправлять указанные метрики в Prometheus. Если установлен в true, метрики указанной рабочей нагрузки будут отправлены в Prometheus.

N/A

prometheus.io/path

URL для сбора данных Prometheus.

/metrics

prometheus.io/port

Endpoint port number for Prometheus to collect data.

N/A

prometheus.io/scheme

Protocol used by Prometheus to collect data. The value can be http or https.

N/A

kubernetes.io/ingress-bandwidth

The ingress bandwidth of a pod. It controls the rate at which the pod receives data to ensure that the pod can process external requests.

For details, see Configuring QoS for a Pod.

N/A

kubernetes.io/egress-bandwidth

Пропускная способность выхода пода. Она контролирует скорость, с которой под отправляет данные во внешние системы. Это влияет на эффективность связи между подом и внешними сервисами или пользователями.

Для получения подробностей см. Настройка QoS для Пода.

N/A

Полезные ссылки