Metrics-server#
Metrics-server - это легковесный компонент Kubernetes, предназначенный для сбора и предоставления метрик использования ресурсов (CPU и памяти) на уровне pod и узлов кластера.
Основные задачи и возможности
Сбор метрик в реальном времени:
Получает данные о загрузке CPU и использовании памяти с Kubelet на каждом узле кластера через HTTP-запросы.
Интеграция с Kubernetes API:
Предоставляет доступ к метрикам через API (
metrics.k8s.io), что позволяет использовать их в инструментах управления и автоматизации. Показывает метрики командойkubectl top podsиkubectl top nodes.Поддержка автоматического масштабирования (HPA):
Является основным источником данных для Horizontal Pod Autoscaler, позволяя автоматически изменять количество Pod в зависимости от нагрузки.
Мониторинг состояния узлов и контейнеров:
Позволяет отслеживать базовые показатели ресурсного потребления всей инфраструктуры кластера.
Простота установки и масштабируемости:
Легко развертывается как add-on и поддерживает горизонтальное масштабирование для работы в крупных кластерах.
Примечание
Metrics-server устанавливается по умолчанию с компонентом Monitoring.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем metrics-server и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
-
image - определить настройки контейнерного образа metrics-server
imagePullSecrets - определить секреты для загрузки образов из приватных реестров
nameOverride - определить сокращенное переопределение имени ресурсов
fullnameOverride - определить полное переопределение имени ресурсов
serviceAccount - определить настройки ServiceAccount для metrics-server
apiService - определить настройки APIService для metrics.k8s.io
podLabels - определить дополнительные labels для pod metrics-server
podAnnotations - определить дополнительные аннотации для pod metrics-server
podSecurityContext - определить pod-level securityContext для metrics-server
securityContext - определить container-level securityContext для metrics-server
priorityClassName - определить PriorityClass для pod metrics-server
hostNetwork - определить использование hostNetwork для metrics-server
replicas - определить количество реплик Deployment metrics-server
revisionHistoryLimit - определить количество сохраняемых ревизий Deployment
updateStrategy - определить стратегию обновления Deployment metrics-server
podDisruptionBudget - определить настройки PodDisruptionBudget для metrics-server
defaultArgs - определить стандартные аргументы запуска metrics-server
args - определить дополнительные аргументы запуска metrics-server
livenessProbe - определить проверку живости контейнера metrics-server
readinessProbe - определить проверку готовности контейнера metrics-server
addonResizer - определить настройки sidecar-контейнера addon-resizer
metrics - определить настройки публикации метрик metrics-server
serviceMonitor - определить настройки ServiceMonitor для Prometheus
resources - определить requests и limits для контейнера metrics-server
extraVolumeMounts - определить дополнительные volumeMounts для контейнера metrics-server
extraVolumes - определить дополнительные volumes для pod metrics-server
nodeSelector - определить правила выбора узлов для metrics-server
affinity - определить affinity-правила для pod metrics-server
dnsConfig - определить дополнительную DNS-конфигурацию для pod metrics-server
deploymentAnnotations - определить аннотации для Deployment metrics-server
tls - определить настройки TLS для metrics-server и APIService
image - определить настройки контейнерного образа metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Путь к репозиторию Docker-образа Metrics-server. Формируется из глобальных переменных |
|
|
Тег Docker-образа Metrics-server. Строка |
|
|
Политика скачивания образа. Возможные значения: |
|
imagePullSecrets - определить секреты для загрузки образов из приватных реестров#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список секретов Kubernetes, используемых для аутентификации при загрузке контейнерных образов из приватных реестров |
|
nameOverride - определить сокращенное переопределение имени ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение имени для ресурсов Kubernetes |
|
fullnameOverride - определить полное переопределение имени ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полное переопределение имени для всех ресурсов |
|
serviceAccount - определить настройки ServiceAccount для metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создать сервис-аккаунт. Значения: |
|
|
Аннотации для сервис-аккаунта. |
|
|
Имя сервис-аккаунта. Если не указано и |
|
|
Список секретов, которые можно монтировать этим сервис-аккаунтом |
|
rbac - определить настройки RBAC-ресурсов metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ресурсы RBAC. Значения: |
|
|
Включить |
|
apiService - определить настройки APIService для metrics.k8s.io#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать объект |
|
|
Аннотации для |
|
|
Пропускать проверку TLS-сертификата при обращении к APIService. Значения: |
|
|
PEM-кодированный |
|
commonLabels - определить общие labels для ресурсов chart#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Общие метки для всех создаваемых ресурсов |
|
podLabels - определить дополнительные labels для pod metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для pod Metrics-server |
|
podAnnotations - определить дополнительные аннотации для pod metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для pod Metrics-server |
|
podSecurityContext - определить pod-level securityContext для metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Настройки securityContext на уровне pod для metrics-server |
|
securityContext - определить container-level securityContext для metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Разрешить повышение привилегий. Значения: |
|
|
Только для чтения root-файловая система. Значения: |
|
|
Запускать только не от root. Значения: |
|
|
UID пользователя для запуска контейнера |
|
|
GID группы для запуска контейнера |
|
|
Тип профиля |
|
|
Список |
|
priorityClassName - определить PriorityClass для pod metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя класса приоритета для pod |
|
containerPort - определить порт контейнера metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Порт, на котором работает Metrics-server |
|
hostNetwork - определить использование hostNetwork для metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запускать Metrics-server в режиме |
|
replicas - определить количество реплик Deployment metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик Metrics-server |
|
revisionHistoryLimit - определить количество сохраняемых ревизий Deployment#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Максимальное количество сохраненных ревизий развертывания |
Отсутствует |
updateStrategy - определить стратегию обновления Deployment metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Стратегия обновления Deployment metrics-server |
|
podDisruptionBudget - определить настройки PodDisruptionBudget для metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить |
|
|
Минимальное количество доступных pod |
Отсутствует |
|
Максимальное количество недоступных pod |
Отсутствует |
|
Политика эвикции для нездоровых pod в PodDisruptionBudget |
Отсутствует |
defaultArgs - определить стандартные аргументы запуска metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список стандартных аргументов командной строки |
|
args - определить дополнительные аргументы запуска metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных аргументов |
|
livenessProbe - определить проверку живости контейнера metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
HTTP-путь для проверки живости |
|
|
Порт для проверки |
|
|
Схема ( |
|
|
Задержка перед первой проверкой |
|
|
Периодичность проверки |
|
|
Количество неудачных попыток до рестарта |
|
readinessProbe - определить проверку готовности контейнера metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
HTTP-путь для проверки готовности |
|
|
Порт для проверки |
|
|
Схема ( |
|
|
Задержка перед первой проверкой |
|
|
Периодичность проверки |
|
|
Количество неудачных попыток до рестарта |
|
service - определить настройки Service для metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Тип Kubernetes Service. Например, |
|
|
Порт, на котором сервис слушает трафик |
|
|
Аннотации для сервиса |
|
|
Метки для сервиса |
|
addonResizer - определить настройки sidecar-контейнера addon-resizer#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает sidecar-контейнер addon-resizer для автоматической подстройки ресурсов |
|
|
Репозиторий образа addon-resizer |
|
|
Тег образа addon-resizer |
|
|
Разрешать повышение привилегий в контейнере addon-resizer |
|
|
Монтировать корневую файловую систему контейнера addon-resizer только для чтения |
|
|
Запускать контейнер addon-resizer от непривилегированного пользователя |
|
|
UID пользователя контейнера addon-resizer |
|
|
Тип seccomp-профиля для контейнера addon-resizer |
|
|
Список Linux capabilities, удаляемых у контейнера addon-resizer |
|
|
CPU request контейнера addon-resizer |
|
|
Memory request контейнера addon-resizer |
|
|
CPU limit контейнера addon-resizer |
|
|
Memory limit контейнера addon-resizer |
|
|
Базовое значение CPU для расчета scaling-параметров addon-resizer |
|
|
Дополнительный CPU, добавляемый на единицу роста кластера |
|
|
Базовое значение памяти для расчета scaling-параметров addon-resizer |
|
|
Дополнительная память, добавляемая на единицу роста кластера |
|
|
Минимальный размер кластера, начиная с которого применяется scaling-логика nanny |
|
|
Интервал опроса состояния кластера для пересчета ресурсов в миллисекундах |
|
|
Порог изменения размера кластера, после которого выполняется пересчет ресурсов |
|
metrics - определить настройки публикации метрик metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить экспорт метрик. Значения: |
|
serviceMonitor - определить настройки ServiceMonitor для Prometheus#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить |
|
|
Дополнительные метки для ServiceMonitor |
|
|
Интервал сбора метрик |
|
|
Время ожидания сбора метрик |
|
|
Дополнительные правила |
|
|
Дополнительные правила |
|
resources - определить requests и limits для контейнера metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запрашиваемое количество CPU |
|
|
Запрашиваемое количество памяти |
|
|
Лимит CPU |
|
|
Лимит памяти |
|
extraVolumeMounts - определить дополнительные volumeMounts для контейнера metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных |
|
extraVolumes - определить дополнительные volumes для pod metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных |
|
nodeSelector - определить правила выбора узлов для metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
NodeSelector для pod Metrics-server |
|
tolerations - определить tolerations для pod metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список |
|
affinity - определить affinity-правила для pod metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
|
|
topologySpreadConstraints - определить ограничения распределения pod metrics-server по топологии кластера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список ограничений по распределению pod |
|
dnsConfig - определить дополнительную DNS-конфигурацию для pod metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
DNS-конфигурация для pod |
|
deploymentAnnotations - определить аннотации для Deployment metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для развертывания |
|
schedulerName - определить scheduler для pod metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
tmpVolume - определить временный volume для metrics-server#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Настройки |
|
tls - определить настройки TLS для metrics-server и APIService#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метод управления TLS-сертификатом; поддерживаются metrics-server, helm, cert-manager и existingSecret |
|
|
DNS-домен кластера, используемый для формирования Subject Alternative Names сертификата |
|
|
Автоматически добавлять аннотацию cert-manager.io/inject-ca-from в ресурс APIService |
|
|
Использовать существующий issuer cert-manager вместо создания нового |
|
|
Тип существующего issuer cert-manager, например Issuer или ClusterIssuer |
|
|
Имя существующего issuer cert-manager |
|
|
Запрашиваемая длительность действия сертификата |
|
|
Период до истечения сертификата, за который cert-manager должен начать обновление |
|
|
Дополнительные аннотации для ресурса Certificate |
|
|
Дополнительные labels для ресурса Certificate |
|
|
Использовать helm lookup для повторного использования Secret, созданного в предыдущей установке Helm |
|
|
Срок действия сертификата, генерируемого Helm, в днях |
|
|
Имя существующего Secret с TLS-материалами, который нужно использовать |
|
|
Использовать helm lookup для автоматического заполнения apiService.caBundle из существующего Secret |
|