Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Kubernetes
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
    • Все руководства
    • Создание нового Kubernetes-проекта в Yandex Cloud
    • Создание кластера Kubernetes без доступа в интернет
    • Запуск рабочих нагрузок с GPU
    • Использование групп узлов c GPU без предустановленных драйверов
    • Установка Time-Slicing GPUs
    • Миграция ресурсов в другую зону доступности
    • Использование модулей Yandex Cloud в Terraform
    • Шифрование секретов в Managed Service for Kubernetes
      • Интеграция с Argo CD
      • Интеграция с Crossplane
      • Синхронизация с секретами Yandex Lockbox
      • Настройка Fluent Bit для работы с Cloud Logging
      • Настройка Gateway API
      • Настройка L7-балансировщика Application Load Balancer с помощью Ingress-контроллера
      • Настройка логирования для L7-балансировщика Application Load Balancer с помощью Ingress-контроллера
      • Создание L7-балансировщика с профилем безопасности Smart Web Security через Ingress-контроллер Application Load Balancer
      • Проверка состояния приложений в кластере Managed Service for Kubernetes с помощью L7-балансировщика Application Load Balancer
      • Использование Jaeger для трассировки запросов в Managed Service for YDB
      • Настройка Kyverno & Kyverno Policies
      • Использование Metrics Provider для трансляции метрик
      • Редактирование изображений для сайтов с помощью Thumbor
      • Использование Istio
      • Использование HashiCorp Vault для хранения секретов
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

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

  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте рабочее окружение
  • Установите Metrics Provider и рабочее окружение
  • Проверьте работу Metrics Provider
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Использование продуктов Cloud Marketplace
  3. Использование Metrics Provider для трансляции метрик

Использование Metrics Provider для трансляции метрик

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте рабочее окружение
  • Установите Metrics Provider и рабочее окружение
  • Проверьте работу Metrics Provider
  • Удалите созданные ресурсы

Metrics Provider транслирует метрики объектов кластера Managed Service for Kubernetes в системы мониторинга и системы автоматического масштабирования.

Из этой статьи вы узнаете, как настроить передачу внешних метрик в Horizontal Pod Autoscaler с помощью Metrics Provider.

Чтобы настроить передачу метрик:

  1. Подготовьте рабочее окружение.
  2. Установите Metrics Provider и рабочее окружение.
  3. Проверьте работу Metrics Provider.

Если созданные ресурсы вам больше не нужны, удалите их.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входят:

  • Плата за кластер Managed Service for Kubernetes: использование мастера и исходящий трафик (см. тарифы Managed Service for Kubernetes).
  • Плата за узлы кластера (ВМ): использование вычислительных ресурсов, операционной системы и хранилища (см. тарифы Compute Cloud).
  • Плата за публичный IP-адрес, если он назначен узлам кластера (см. тарифы Virtual Private Cloud).

Перед началом работыПеред началом работы

  1. Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

    По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

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

    Важно

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

  3. Создайте кластер Managed Service for Kubernetes и группу узлов любой подходящей конфигурации. При создании укажите группы безопасности, подготовленные ранее.

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

Подготовьте рабочее окружениеПодготовьте рабочее окружение

Для проверки работы Metrics Provider будет создано тестовое приложение nginx и Horizontal Pod Autoscaler, в который Metrics Provider будет передавать метрики утилизации CPU.

  1. Создайте файл app.yaml с манифестом приложения nginx:

    app.yaml
    ---
    ### Deployment
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
      namespace: kube-system
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: nginx
          labels:
            app: nginx
        spec:
          containers:
            - name: nginx
              image: registry.k8s.io/hpa-example
              resources:
                requests:
                  memory: "256Mi"
                  cpu: "500m"
                limits:
                  memory: "500Mi"
                  cpu: "1"
    ---
    ### Service
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx
      namespace: kube-system
    spec:
      selector:
        app: nginx
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
      type: LoadBalancer
    
  2. Создайте файл hpa.yaml с манифестом Horizontal Pod Autoscaler test-hpa:

    apiVersion: autoscaling/v2beta2
    kind: HorizontalPodAutoscaler
    metadata:
      name: test-hpa
      namespace: kube-system
    spec:
      maxReplicas: 2
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: nginx
      metrics:
        - type: External
          external:
            metric:
              name: cpu_usage
              selector:
                matchLabels:
                  service: "compute"
                  resource_id: "<имя_узла>"
                  resource_type: "vm"
            target:
              type: Value
              value: "20"
    

    Имя узла, на котором будут развернуты Metrics Provider и рабочее окружение, можно получить со списком узлов в кластере:

    kubectl get nodes
    

Установите Metrics Provider и рабочее окружениеУстановите Metrics Provider и рабочее окружение

  1. Установите Metrics Provider по инструкции.

  2. Создайте тестовое приложение и Horizontal Pod Autoscaler:

    kubectl apply -f app.yaml && \
    kubectl apply -f hpa.yaml
    
  3. Убедитесь, что поды приложений перешли в состояние Running:

    kubectl get pods -n kube-system | grep nginx && \
    kubectl get pods -n kube-system | grep metrics
    

    Результат:

    nginx-6c********-dbfrn                      1/1     Running   0          2d22h
    nginx-6c********-gckhp                      1/1     Running   0          2d22h
    metrics-server-v0.3.1-6b********-f7dv6      2/2     Running   4          7d3h
    

Проверьте работу Metrics ProviderПроверьте работу Metrics Provider

Убедитесь, что Horizontal Pod Autoscaler получает метрики от Metrics Provider и на их основе рассчитывает количество подов приложения nginx:

kubectl -n kube-system describe hpa test-hpa

В ожидаемом выводе команды условия AbleToScale и ScalingActive должны иметь статус True:

Name:                          test-hpa
Namespace:                     kube-system
...
Min replicas:                  1
Max replicas:                  2
Deployment pods:               2 current / 2 desired
Conditions:
  Type            Status  Reason            Message
  ----            ------  ------            -------
  AbleToScale     True    ReadyForNewScale  recommended size matches current size
  ScalingActive   True    ValidMetricFound  the HPA was able to successfully calculate a replica count from external metric cpu_usage(&LabelSelector{MatchLabels:map[string]string{resource_id: <имя_узла>,resource_type: vm,service: compute,},MatchExpressions:[]LabelSelectorRequirement{},})
Events:           <none>

Примечание

Потребуется некоторое время, чтобы Metrics Provider получил метрики от кластера Managed Service for Kubernetes. Если вы столкнулись с ошибкой unable to get external metric ... no metrics returned from external metrics API, повторите проверку работы провайдера через несколько минут.

Удалите созданные ресурсыУдалите созданные ресурсы

Удалите ресурсы, которые вы больше не будете использовать, чтобы за них не списывалась плата:

  1. Удалите кластер Managed Service for Kubernetes.
  2. Если вы зарезервировали для кластера публичный статический IP-адрес, удалите его.

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

Предыдущая
Настройка Kyverno & Kyverno Policies
Следующая
Редактирование изображений для сайтов с помощью Thumbor
Проект Яндекса
© 2025 ООО «Яндекс.Облако»