Kube-state-metrics#
Kube-state-metrics - это инструмент, предназначенный для сбора и предоставления метрик о состоянии объектов в кластере Kubernetes. Это легковесный агент, который слушает API-сервер Kubernetes и генерирует метрики на основе текущего состояния ресурсов.
Основные задачи и возможности
Сбор метрик о состоянии объектов Kubernetes:
KSM собирает данные о состоянии таких объектов, как
Pod,Deployment,Service, узлы и другие элементы инфраструктуры кластера.Генерация метрик в формате, совместимом с Prometheus:
Метрики доступны через HTTP-эндпоинт и могут быть легко собраны Prometheus или другими системами мониторинга.
Интеграция с Kubernetes API:
Kube-state-metrics взаимодействует напрямую с API-сервером Kubernetes, отслеживая изменения в состоянии кластера и предоставляя актуальную информацию.
Поддержка мониторинга и автоматизации:
Полученные метрики могут использоваться для построения панелей, анализа состояния кластера, выявления проблем и автоматического реагирования.
Простота развертывания и использования:
Kube-state-metrics легко устанавливается в кластер как стандартный Kubernetes-компонент и не требует сложной настройки.
Примечание
Kube-state-metrics устанавливается по умолчанию с компонентом Monitoring, автоматически расширен для сбора метрик с CRD DropApp, таких как Component и Tool.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем kube-state-metrics и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
prometheusScrape - включение автоматического обнаружения Prometheus#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает автоматическое обнаружение сервиса Prometheus для сбора метрик |
|
image - настройки образа контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Репозиторий Docker-образа Kube-state-metrics с поддержкой шаблонов |
|
|
Версия образа Kube-state-metrics |
|
|
SHA-хеш образа для обеспечения целостности |
|
|
Политика загрузки образа ( |
|
|
Список секретов для доступа к приватному реестру образов |
|
autosharding - автоматическое шардирование данных#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает автоматическое шардирование Kube-state-metrics для масштабирования |
|
|
Количество реплик для шардирования (работает только с |
|
replicas - количество реплик pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик развертывания Kube-state-metrics |
|
revisionHistoryLimit - лимит истории ревизий#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество старых |
|
extraArgs - дополнительные аргументы командной строки#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных аргументов для Kube-state-metrics (например, |
|
automountServiceAccountToken - автоматическое монтирование токена сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Автоматически монтировать токен сервисного аккаунта в pod |
|
service - настройки сервиса Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Порт сервиса для доступа к метрикам |
|
|
Тип сервиса Kubernetes ( |
C |
|
Включить поддержку |
|
|
Список IP-семейств для |
|
|
Политика назначения IP-семейств |
|
|
Порт на узле для типа |
|
|
Статический IP для |
|
|
Список разрешенных CIDR для доступа к |
|
|
Статический |
|
|
Аннотации для сервиса |
|
customLabels - пользовательские метки для всех ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Пользовательские метки, добавляемые ко всем ресурсам |
|
selectorOverride - переопределение селектора#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение селектора меток для развертывания |
|
releaseLabel - добавление метки релиза#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Добавить метку |
|
hostNetwork - использование сети хоста#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Использовать сеть хоста вместо pod сети |
|
rbac - настройки ролевого доступа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать RBAC ресурсы ( |
|
|
Использовать |
|
|
Дополнительные правила RBAC для пользовательских ресурсов |
|
kubeRBACProxy - настройки kube-rbac-proxy для HTTPS доступа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить |
|
|
Репозиторий образа |
|
|
Версия образа |
|
|
SHA-хеш образа |
|
|
Политика загрузки образа |
|
|
Дополнительные аргументы для |
|
|
Файловая система только для чтения |
|
|
Разрешить повышение привилегий |
|
|
Список отзываемых |
|
|
Лимит CPU для |
|
|
Лимит памяти для |
|
|
Запрос CPU для |
|
|
Запрос памяти для |
|
|
Монтирование дополнительных томов в |
|
serviceAccount - настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать |
|
|
Имя |
|
|
Секреты для доступа к реестру образов |
|
|
Аннотации для |
|
|
Автоматически монтировать токен |
|
env - переменные окружения#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные переменные окружения для контейнера |
|
prometheus - настройки мониторинга Prometheus#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать |
|
|
Аннотации для |
|
|
Дополнительные метки для |
|
|
Namespace для размещения |
|
|
Селектор namespace для |
|
|
Метка |
|
|
Метки целей для передачи в Prometheus |
|
|
Метки pod для передачи в Prometheus |
|
|
Максимальное количество образцов данных, собираемых за один запрос при сканировании метрик |
|
|
Лимит количества целей |
|
|
Лимит количества меток на образец |
|
|
Лимит длины имени метки |
|
|
Лимит длины значения метки |
|
|
Переопределение селектора |
|
|
Интервал сбора HTTP-метрик |
|
|
Время ожидания сбора HTTP-метрик |
|
|
URL-прокси для HTTP-метрик |
|
|
Включить HTTP/2 для |
|
|
Сохранять оригинальные метки |
|
|
Правила переименования метрик |
|
|
Правила переименования целей |
|
|
Схема протокола ( |
|
|
Файл с |
|
|
|
|
|
Настройки TLS |
|
|
Интервал сбора самомониторинга |
|
|
Время ожидания сбора самомониторинга |
|
|
URL-прокси для самомониторинга |
|
|
Включить HTTP/2 для самомониторинга |
|
|
Сохранять оригинальные метки самомониторинга |
|
|
Правила переименования метрик самомониторинга |
|
|
Правила переименования целей самомониторинга |
|
|
Схема протокола самомониторинга |
|
|
Файл с |
|
|
Secret с |
|
|
Настройки TLS для самомониторинга |
|
scrapeconfig - настройки ScrapeConfig для Prometheus#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать |
|
|
Аннотации для |
|
|
Дополнительные метки для |
|
|
Имя |
|
|
Максимальное количество образцов данных, собираемых за один запрос при сканировании метрик |
|
|
Лимит количества целей |
|
|
Лимит количества меток на образец |
|
|
Лимит длины имени метки |
|
|
Лимит длины значения метки |
|
|
Статические метки для конфигурации |
|
|
Интервал сбора метрик |
|
|
Время ожидания сбора метрик |
|
|
URL-прокси |
|
|
Включить |
|
|
Сохранять оригинальные метки |
|
|
Правила переименования метрик |
|
|
Правила переименования целей |
|
|
Схема протокола |
|
|
Настройки TLS |
|
podSecurityPolicy - политики безопасности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать |
|
|
Аннотации для |
|
additionalVolumes - дополнительные тома#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных томов для развертывания |
|
networkPolicy - сетевые политики#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать |
|
|
Тип |
|
securityContext - контекст безопасности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить контекст безопасности для pod |
|
|
ID группы для запуска процессов в pod |
|
|
ID пользователя для запуска процессов в pod |
|
|
ID группы для владения томами |
|
|
Запускать процессы от непривилегированного пользователя |
|
|
Тип |
|
containerSecurityContext - контекст безопасности контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Корневая файловая система только для чтения |
|
|
Разрешить повышение привилегий |
|
|
Список отзываемых Linux |
|
nodeSelector - селектор узлов для размещения#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Селектор узлов для размещения pod |
|
affinity - правила сродства pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Правила аффинности для размещения pod на узлах |
|
tolerations - допуски для размещения на узлах#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список допусков для размещения pod на узлах с |
|
topologySpreadConstraints - ограничения распределения по топологии#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Ограничения для равномерного распределения pod по зонам/узлам |
|
annotations - аннотации для deployment#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для |
|
podAnnotations - аннотации для pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для pod |
|
podLabels - метки для pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные метки для pod |
|
podDisruptionBudget - бюджет нарушения работы pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Настройки |
|
metricAllowlist - белый список метрик#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список разрешенных метрик (имена или регулярные выражения) |
|
metricDenylist - черный список метрик#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список запрещенных метрик (взаимоисключающий с |
|
metricLabelsAllowlist - белый список меток метрик#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список Kubernetes меток для включения в метрики (например, namespaces= |
|
metricAnnotationsAllowList - белый список аннотаций метрик#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список Kubernetes аннотаций для включения в метрики |
|
collectors - активные коллекторы ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список включенных коллекторов Kubernetes ресурсов |
|
kubeconfig - настройки kubeconfig файла#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить использование |
|
|
Настройки |
|
customResourceState - метрики пользовательских ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить сбор метрик для пользовательских ресурсов (CRD) |
|
|
Конфигурация для сбора метрик пользовательских ресурсов |
|
releaseNamespace - ограничение namespace#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Собирать метрики только из namespace релиза |
|
namespaces - список разрешенных namespace#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список namespace через запятую для сбора метрик (по умолчанию все) |
|
namespacesDenylist - черный список namespace#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список исключенных namespace через запятую |
|
namespaceOverride - переопределение namespace развертывания#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределить namespace для развертывания Kube-state-metrics |
|
resources - ресурсы контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запросы и лимиты ресурсов (CPU, память) для контейнера |
|
kubeTargetVersionOverride - переопределение версии Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Принудительное указание версии Kubernetes для |
|
selfMonitor - самомониторинг Kube-state-metrics#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить самомониторинг Kube-state-metrics (собственные метрики) |
|
verticalPodAutoscaler - вертикальное автомасштабирование#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить |
|
|
Список контролируемых ресурсов (CPU, память) |
|
|
Максимально разрешенные ресурсы |
|
|
Минимально разрешенные ресурсы |
|
volumeMounts - монтирование томов в контейнер#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных точек монтирования томов в контейнер |
|
volumes - дополнительные тома#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных томов для pod |
|
extraManifests - дополнительные Kubernetes манифесты#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных объектов Kubernetes для развертывания |
|
containers - дополнительные контейнеры#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных |
|
initContainers - init-контейнеры#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список |
|
dnsPolicy - политика DNS#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Политика DNS для pod ( |
|
dnsConfig - конфигурация DNS#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные настройки DNS для pod |
|
startupProbe - проверка запуска#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить |
|
|
Количество неудачных попыток до признания неудачного запуска |
|
|
HTTP-заголовки для |
|
|
Схема протокола для |
|
|
Задержка перед первой проверкой |
|
|
Интервал между проверками |
|
|
Количество успешных проверок для признания успешного запуска |
|
|
Время ожидания выполнения |
|
livenessProbe - проверка жизнеспособности#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество неудачных попыток до перезапуска контейнера |
|
|
HTTP-заголовки для |
|
|
Схема протокола для |
|
|
Задержка перед первой проверкой |
|
|
Интервал между проверками |
|
|
Количество успешных проверок для признания живого контейнера |
|
|
Время ожидания выполнения |
|
readinessProbe - проверка готовности#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество неудачных попыток до исключения из сервиса |
|
|
HTTP-заголовки для |
|
|
Схема протокола для |
|
|
Задержка перед первой проверкой |
|
|
Интервал между проверками |
|
|
Количество успешных проверок для признания готового контейнера |
|
|
Время ожидания выполнения |
|