Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Настройка подключения к Managed Service for PostgreSQL из контейнера Serverless Containers
    • Создать ВМ с Container Optimized Image
    • Создать ВМ с Container Optimized Image и дополнительным томом для Docker-контейнера
    • Создать группу ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Создать группу ВМ с Container Optimized Image
    • Создать ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Изменить ВМ с Container Optimized Image
    • Настройка вывода информации из Docker-контейнера в серийный порт
      • Создание нового Kubernetes-проекта
      • Создание кластера Kubernetes без доступа в интернет
      • Запуск рабочих нагрузок с GPU
      • Использование групп узлов c GPU без предустановленных драйверов
      • Установка Time-Slicing GPUs
      • Миграция ресурсов в другую зону доступности
      • Шифрование секретов
        • Горизонтальное масштабирование приложения в кластере
        • Вертикальное масштабирование приложения в кластере
        • Изменение параметров сервера метрик (Metrics Server)
        • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием

В этой статье:

  • Посмотрите количество ресурсов, выделенных для пода сервера метрик
  • Измените параметры сервера метрик
  • Проверьте результат
  • Сбросьте параметры сервера метрик
  1. Контейнерная инфраструктура
  2. Managed Service for Kubernetes
  3. Настройка и тестирование масштабирования
  4. Изменение параметров сервера метрик (Metrics Server)

Изменение параметров сервера метрик в кластере Yandex Managed Service for Kubernetes

Статья создана
Yandex Cloud
Обновлена 9 апреля 2025 г.
  • Посмотрите количество ресурсов, выделенных для пода сервера метрик
  • Измените параметры сервера метрик
  • Проверьте результат
  • Сбросьте параметры сервера метрик

Сервер метрик (Metrics Server) — это сервис в кластере Managed Service for Kubernetes, устанавливаемый по умолчанию. С помощью компонента kubelet он собирает метрики с каждого узла в кластере Managed Service for Kubernetes и предоставляет их через Metrics API. На основании данных из этих метрик работают горизонтальное и вертикальное автомасштабирования подов. Данные метрик можно получить с помощью команд kubectl top node или kubectl top pod. Подробнее см. в документации Metrics Server.

Под сервера метрик содержит два контейнера: metrics-server и metrics-server-nanny, который является addon-resizer для metrics-server. Контейнер metrics-server-nanny отвечает за автоматическое выделение ресурсов контейнеру metrics-server в зависимости от количества узлов в кластере Managed Service for Kubernetes.

В некоторых случаях компонент metrics-server-nanny может работать некорректно. Например, если при малом количестве узлов в кластере Managed Service for Kubernetes создано большое количество подов. В этом случае под сервера метрик превысит свои лимиты, что может вызвать снижение производительности сервера метрик.

Чтобы избежать этого, измените параметры сервера метрик вручную:

  1. Посмотрите количество ресурсов, выделенных для пода сервера метрик.
  2. Измените параметры сервера метрик.
  3. Проверьте результат.

Чтобы вернуть параметры сервера метрик до значений по умолчанию, сбросьте их.

Посмотрите количество ресурсов, выделенных для пода сервера метрикПосмотрите количество ресурсов, выделенных для пода сервера метрик

  1. Создайте группы безопасности для кластера Managed Service for Kubernetes и входящих в него групп узлов.

    Важно

    От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.

  2. Установите kubectl и настройте его на работу с созданным кластером.

  3. Выполните команду:

    kubectl get pod <имя_пода_сервера_метрик> \
      --namespace=kube-system \
      --output=json | \
      jq '.spec.containers[] | select(.name == "metrics-server") | .resources'
    

    Ресурсы вычисляются по следующим формулам:

    cpu = baseCPU + cpuPerNode * nodesCount
    memory = baseMemory + memoryPerNode * nodesCount
    

    Где:

    • baseCPU — базовое количество CPU.
    • cpuPerNode — количество CPU на каждый узел.
    • nodesCount — количество узлов Managed Service for Kubernetes.
    • baseMemory — базовое количество оперативной памяти.
    • memoryPerNode — количество оперативной памяти на каждый узел.

Измените параметры сервера метрикИзмените параметры сервера метрик

  1. Откройте конфигурационный файл сервера метрик:

    kubectl edit configmap metrics-server-config \
      --namespace=kube-system \
      --output=yaml
    
  2. Добавьте или измените параметры ресурсов в блоке data.NannyConfiguration:

    apiVersion: v1
    data:
      NannyConfiguration: |-
        apiVersion: nannyconfig/v1alpha1
        kind: NannyConfiguration
        baseCPU: <базовое_количество_CPU>m
        cpuPerNode: <количество_CPU_за_каждый_узел>m
        baseMemory: <базовое_количество_оперативной_памяти>Mi
        memoryPerNode: <количество_оперативной_памяти_за_каждый_узел>Mi
    ...
    
    Пример конфигурационного файла
    apiVersion: v1
    data:
      NannyConfiguration: |-
        apiVersion: nannyconfig/v1alpha1
        kind: NannyConfiguration
        baseCPU: 48m
        cpuPerNode: 1m
        baseMemory: 104Mi
        memoryPerNode: 3Mi
    kind: ConfigMap
    metadata:
      creationTimestamp: "2022-12-15T06:28:22Z"
      labels:
        addonmanager.kubernetes.io/mode: EnsureExists
      name: metrics-server-config
      namespace: kube-system
      resourceVersion: "303569"
      uid: 931b88ca-21da-4d04-a3c1-da7e********
    
  3. Перезапустите сервис сервер метрик. Для этого удалите его и подождите пока контроллер Kubernetes создаст его заново:

    kubectl delete deployment metrics-server \
      --namespace=kube-system
    

Проверьте результатПроверьте результат

Снова посмотрите количество ресурсов, выделенных для пода сервера метрик, и убедитесь, что для нового пода оно изменилось.

Сбросьте параметры сервера метрикСбросьте параметры сервера метрик

Чтобы сбросить параметры до значений по умолчанию, удалите конфигурационный файл сервера метрик и его Deployment:

kubectl delete configmap metrics-server-config \
  --namespace=kube-system && \
kubectl delete deployment metrics-server \
  --namespace=kube-system

После выполнения команд новый под сервера метрик будет создан автоматически.

Была ли статья полезна?

Предыдущая
Вертикальное масштабирование приложения в кластере
Следующая
Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
Проект Яндекса
© 2025 ООО «Яндекс.Облако»