Одной из важнейших особенностей Kubernetes является возможность легко масштабировать наши контейнеризированные приложения.
Это позволяет администраторам справляться с возросшим трафиком путем добавления большего количества реплик, способных справиться с ростом активности.
Kubernetes справляется с нагрузкой разумно, равномерно распределяя работу между подами в кластере, гарантируя, что ни одна из них не будет перегружена.
Наличие нескольких реплик также означает, что мы можем выполнять скользящие обновления без каких-либо простоев, поскольку реплики могут обновляться одна за другой, и их всегда будет достаточно для обслуживания входящего трафика.
В этом руководстве мы покажем вам, как использовать команду kubectl scale для масштабирования приложений путем настройки дополнительных реплик в системе Linux.
Для начала ознакомьтесь с некоторыми примерами команд kubectl, приведенными ниже.
Использование команды Scale в Kubernetes
Эти шаги предполагают, что у вас уже запущен кластер Kubernetes и есть доступ к команде kubectl.
Давайте начнем с проверки наших текущих развертываний.
В этом примере у нас запущен один контейнер Nginx:
☸️ Как развернуть Nginx в кластере Kubernetes
$ kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE nginx-server 1/1 1 1 55s
- NAME показывает имя нашего развертывания (развертываний).
- READY – количество реплик, доступных для развертывания, из общего числа.
- UP-TO-DATE – сколько реплик соответствует последней версии развертывания.
- AVAILABLE – количество реплик, которые еще не были обновлены.
- AGE – сколько времени прошло с момента создания развертывания.
Используя аргумент scale в kubectl, мы можем масштабировать наши развертывания вверх или вниз и указать количество реплик, которые мы хотим использовать для развертывания.
В этом примере мы увеличим масштаб развертывания nginx-сервера, увеличив его с одной реплики до пяти.
$ kubectl scale deployments/nginx-server --replicas=5
выполняем следующую команду сразу после команды scale:
$ kubectl get deployments
Сначала команда выдает результат, указывающий на готовность 1/5 реплик.
Несколько минут спустя, когда мы снова выполняем команду, мы подтверждаем, что все пять наших реплик теперь готовы.
Давайте получим дополнительную информацию от наших реплик, выполнив команду:
$ kubectl get pods -o wide
Мы также можем получить некоторую информацию о реплике для нашей установки с помощью этой команды:
$ kubectl describe deployments/nginx-server | grep Replicas Replicas: 5 desired | 5 updated | 5 total | 5 available | 0 unavailable
Синтаксис для уменьшения масштаба развертывания такой же.
С помощью этой команды мы уменьшим количество реплик сервера Nginx с пяти до трех.
$ kubectl scale deployments/nginx-server --replicas=3
Заключение
В этом руководстве мы рассмотрели, как использовать команду kubectl scale в Kubernetes в системе Linux.
Эта команда используется для увеличения или уменьшения количества реплик, запущенных для развертывания в нашем кластере Kubernetes.
Контролируя количество реплик, мы можем масштабировать приложение для удовлетворения растущего спроса или сокращать его, когда количество реплик становится чрезмерным.
Наличие нескольких реплик также дает нам возможность выполнять скользящие обновления.
см. также:
- ☸️ Как создать и управлять подом на Kubernetes
- 🐳 Лучшие практики для контейнерных приложений
- ☸️ Как запланировать мастер ноду выполняющую под/сервис, в качестве воркер ноды
- ☸️ Получение событий Kubernetes по дате с помощью kubectl
- ☸️ Как развернуть и использовать KubeVirt на Minikube
- ☸️ Как показать все образа в кластере Kubernetes ?