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

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

Масштабирование пода подразумевает корректировку количества реплик пода (по сути, идентичных копий пода), работающих в любой момент времени. При развёртывании рабочей нагрузки в Kubernetes администраторы могут указать начальное количество реплик пода для запуска. По мере изменения требований они могут увеличивать или уменьшать количество реплик без необходимости повторного развёртывания пода с нуля. Такая гибкость гарантирует, что приложения смогут справляться с возросшими требованиями за счёт добавления реплик для распределения нагрузки, а масштабирование в периоды низкого спроса предотвращает ненужное расходование ресурсов и снижает затраты.

Однако масштабирование модулей — задача не из простых. По умолчанию Kubernetes требует от администраторов:

  • Масштабируйте модули вручную с помощью команды kubectl scale или

  • Настройте механизмы автоматического масштабирования, такие как горизонтальное автоматическое масштабирование Pod (HPA).

Два способа масштабирования Pod в Kubernetes

Как уже отмечалось, Kubernetes предлагает два основных метода масштабирования модулей: ручное масштабирование и автоматизированное масштабирование.

1. Ручное масштабирование Pod

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

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

развёртывание масштаба kubectl my-deployment —replicas=4

2. Автоматизированное масштабирование Pod

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

Чтобы настроить HPA, выполните следующие действия:

1. Установите сервер метрик

HPA использует Metrics Server для мониторинга использования ресурсов модуля и определения необходимости масштабирования. Настройте Metrics Server с помощью следующей команды:

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

2. Настройте автомасштабирование

Используйте команду kubectl autoscale для определения условий масштабирования. Например, следующая команда настраивает Kubernetes для поддержания загрузки ЦП на уровне 60% для развёртывания с именем my-deployment и количеством реплик от 2 до 10:

развёртывание kubectl autoscale my-deployment —cpu-percent=60 —min=2 —max=10

При такой конфигурации HPA будет автоматически изменять количество реплик (в диапазоне от 2 до 10 реплик) в зависимости от изменений в загрузке ЦП.

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

В примере выше:

  • Если загрузка ЦП резко возрастет, Kubernetes может оказаться не в состоянии добавлять реплики достаточно быстро, чтобы поддерживать уровень загрузки вблизи целевого значения (например, 60%).

  • Аналогичным образом загрузка ЦП может превысить желаемый порог, если максимальное количество реплик недостаточно для удовлетворения спроса.

Несмотря на эти ограничения, автоматическое масштабирование подов остаётся ценным способом балансировки производительности подов с нагрузкой без необходимости частого ручного масштабирования. Однако внедрение инструментов мониторинга и наблюдения Kubernetes крайне важно для выявления и устранения проблем с производительностью подов, которые могут возникнуть даже при использовании автоматического масштабирования.


Бессменный главный редактор, в незапамятные времена работал в издании РБК