Купить Корзина
  • Облако и IT-инфраструктура
  • Домены и сайты
  • Вход
Получить консультацию

Ответим на вопросы, расскажем о конфигурациях, поможем с переносом, подберем оборудование, подготовим коммерческое предложение

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности

Персональный менеджер ответит на ваши вопросы и проведет через все этапы заключения договора: — подберет оборудование — сформирует коммерческое предложение — поможет с миграцией сервера к нам

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности

Или просто оставьте номер телефона, и мы перезвоним вам

  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. База знаний
    2. Рег.облако
    3. Кластеры Kubernetes
    4. Работа с кластером
    5. Автоматическое масштабирование подов в кластере Kubernetes

    Автоматическое масштабирование подов в кластере Kubernetes

    Автоматическое масштабирование — это механизм, который динамически изменяет количество подов или их ресурсы в Kubernetes в зависимости от текущей нагрузки, чтобы поддерживать стабильную работу приложений и эффективно использовать ресурсы.

    В KaaS от Рег.облака можно настроить два вида автомасштабирования подов:

    • 1.
      Горизонтальное автомасштабирование подов (Horizontal Pod Autoscaler, HPA).
    • 2.
      Вертикальное автомасштабирование подов (Vertical Pod Autoscaler, VPA).

    Горизонтальное автомасштабирование подов

    Горизонтальное автомасштабирование (HPA) — это встроенный механизм Kubernetes, который автоматически изменяет количество реплик подов в зависимости от нагрузки. Например, если приложение начинает потреблять больше CPU, HPA создаст дополнительные поды, чтобы распределить нагрузку. Когда нагрузка снижается, HPA уменьшит количество подов, освобождая ресурсы.

    В основе HPA лежит контроллер, который периодически обращается к метрикам и решает, необходимо ли масштабирование. Основная идея — поддерживать заданный уровень целевой метрики.

    Подробнее о горизонтальном автомасштабировании вы можете узнать в официальной документации Kubernetes.

    Настройка горизонтального автомасштабирования

    • 1
      Подключитесь к кластеру Kubernetes.
    • 2

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

      kubectl cluster-info
    • 3

      Установите Metrics Server — он предоставляет HPA данные о загрузке подов:

      kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
    • 4

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

      kubectl get pods -n kube-system | grep metrics-server
    • 5

      Проверьте, отдаются ли метрики:

      kubectl top nodes
      kubectl top pods
    • 6

      Определите деплоймент приложения, для которого нужно включить автомасштабирование:

      kubectl get deployments
    • 7

      Создайте Horizontal Pod Autoscaler с помощью команды:

      kubectl autoscale deployment my-app --cpu-percent=70 --min=2 --max=10

      Где:

      • my-app — имя вашего приложения,
      • --cpu-percent — желаемая нагрузка пода на vCPU в процентах,
      • --min — минимальное количество подов,
      • --max — максимальное количество подов.
    • 8

      Проверьте состояние с помощью команды:

      kubectl get hpa

    Вертикальное автомасштабирование подов

    Вертикальное автомасштабирование (VPA) — это механизм, который не изменяет количество подов, а подстраивает выделенные им ресурсы CPU и памяти. VPA автоматически подбирает оптимальные значения ресурсов для контейнеров, основываясь на их фактическом потреблении. Он анализирует метрики работы подов и при необходимости рекомендует или применяет новые лимиты и запросы ресурсов. При изменении конфигурации VPA пересоздает поды с обновленными параметрами, чтобы они могли эффективно использовать ресурсы кластера.

    В отличие от HPA, вертикальное автомасштабирование не входит в состав Kubernetes по умолчанию. Для него существует официальный проект в GitHub.

    Настройка вертикального автомасштабирования

    • 1
      Подключитесь к кластеру Kubernetes.
    • 2

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

      kubectl cluster-info
    • 3

      Установите Metrics Server:

      kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
    • 4

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

      kubectl get pods -n kube-system | grep metrics-server
    • 5

      Проверьте, отдаются ли метрики:

      kubectl top nodes
      kubectl top pods
    • 6

      Установите Vertical Pod Autoscaler из репозитория:

      cd /tmp && \
        git clone https://github.com/kubernetes/autoscaler.git && \
        cd autoscaler/vertical-pod-autoscaler/hack && \
        ./vpa-up.sh
    • 7

      После установки создайте манифест vpa.yaml для вашего приложения:

      apiVersion: autoscaling.k8s.io/v1
      kind: VerticalPodAutoscaler
      metadata:
        name: my-app-vpa
        namespace: default
      spec:
        targetRef:
          apiVersion: "apps/v1"
          kind: Deployment
          name: my-app
        updatePolicy:
          updateMode: "Auto"

      Где:

      • name — имя приложения,
      • updateMode — режим работы Vertical Pod Autoscaler. Описания режимов можно найти в официальной документации Kubernetes.
    • 8

      Создайте объект Vertical Pod Autoscaler для вашего приложения с помощью команды:

      kubectl apply -f vpa.yaml
    • 9

      Проверить рекомендации Vertical Pod Autoscaler можно с помощью команды:

      kubectl describe vpa my-app-vpa

      В выводе будут указаны текущие и рекомендованные значения ресурсов.

    Специальные предложения
    • Гранты для бизнеса до 500к
    • Скидки на cloud GPU до 50%
    • Скидки на bare-metal с А4000 и А5000
    • Кешбэк 100% на kubernetes
    Рассылка Рег.облака

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Продукты и сервисы
    • Облачные серверы
    • Выделенные серверы
    • Базы данных
    • S3 хранилище
    • Кластеры Kubernetes
    • Cloud GPU
    • VPS
    Решения
    • Интернет-магазин в облаке
    • Разработка и тестирование в облаке
    • Удаленный рабочий стол
    • Работа с 1С
    • Корпоративное хранение данных
    • Искусственный интеллект и машинное обучение в облаке
    • Конфигуратор сервера
    • Администрирование серверов
    Техподдержка
    • Создать тикет
    • Документация
    Прочее
    • О компании
    • Партнерская программа
    • Гранты
    • Блог
    • Контакты
    • Отзывы клиентов
    • © ООО «РЕГ.РУ» Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
      • Политика конфиденциальности
      • Политика обработки персональных данных
      • Правила применения рекомендательных технологий
    • 8 800 333-92-23

      Бесплатный звонок по России

      +7 (495) 009‑92‑22

      Телефон в Москве

      • vk
      • telegram
      • moikrug
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера