Для поддержки многомерного управления метаданными Kubernetes предлагает метки и аннотации. Они оба прикрепляют метаданные к ресурсам в формате пар ключ-значение, но их цели и варианты использования существенно различаются.
Как метки, так и аннотации применяются к различным типам ресурсов Kubernetes. В этом разделе будет подробно рассмотрено их использование в подах.
Метки Под позволяют интеллектуально ассоциировать ресурсы. После того как метки добавлены к Подам, другие ресурсы Kubernetes могут точно идентифицировать и ассоциировать эти Поды с помощью селекторов меток. Ключи и значения меток должны соответствовать определённым правилам именования. Для получения подробной информации смотрите Синтаксис и набор символов. Для примера, вы можете добавить следующую метку к двум рабочим нагрузкам (App 1 и App 2) соответственно:
Когда App 3 создаётся с аффинити нагрузки release=alpha, Kubernetes попытается разместить App 3 на том же узле, что и App 1, или на другом узле, соответствующем этой аффинити. Это обеспечивает интеллектуальное совместное развертывание между App 1 и App 3. Для получения подробной информации смотрите Настройка планирования аффинити или анти-аффинити рабочей нагрузки (podAffinity или podAntiAffinity).
Вы можете добавить метки к Поду, используя консоль или YAML.
При создании или обновлении рабочей нагрузки в консоли CCE вы можете добавить метка Под нажав Метки и Аннотации в Расширенные настройки область. Эта метка помогает идентифицировать Под в кластере. Во время создания рабочей нагрузки CCE по умолчанию добавит метку, показанную на рисунке ниже, к Поду рабочей нагрузки. Значение app это имя рабочей нагрузки.
При создании или обновлении рабочей нагрузки вы можете добавить метку Под в следующей области YAML файла:
...spec:selector:matchLabels:app: nginxversion: v1template:metadata:labels:app: nginxversion: v1spec:...
CCE предоставляет некоторые расширенные функции для pod'ов. Эти функции могут быть реализованы путем добавления аннотаций в файлы YAML. Вы можете добавить аннотации к pod'у, используя консоль или YAML.
При создании или обновлении рабочей нагрузки в консоли CCE вы можете добавить аннотация pod нажав Меткки и аннотации в Дополнительные настройки области для включения расширенных функций для pod'а.
Например, чтобы отключить сбор стандартных выводов логов контейнера для pod'а, установите аннотацию pod в kubernetes.AOM.log.stdout='[]' и нажмите Подтвердить.
При создании или обновлении рабочей нагрузки с использованием YAML вы можете использовать аннотации параметр для включения расширенных pod-функций.
Например, вы можете использовать аннотации чтобы отключить сбор журналов стандартного вывода контейнера для pod:
...spec:replicas: 1 # Number of podsselector:matchLabels: # Selector for selecting resources with specific labelsapp: nginxtemplate:metadata:labels: # Labelsapp: nginxannotations:kubernetes.AOM.log.stdout: '[]'...
Таблица 1 предоставляет некоторые часто используемые аннотации. Вы можете добавлять аннотации для pods по требованию.
Аннотация | Описание | Значение по умолчанию |
|---|---|---|
kubernetes.AOM.log.stdout | Настройка сбора журналов стандартного вывода для контейнеров. Если не указано, журналы стандартного вывода со всех контейнеров будут автоматически отправлены в AOM по умолчанию. Вы можете настроить эту аннотацию, чтобы собирать журналы стандартного вывода только из указанных контейнеров или отключить сбор журналов стандартного вывода для всех контейнеров. Пример:
| 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 |