Автоматический перезапуск модулей в контроллере репликации кластера Kubernetes показывает, как Kubernetes перепланирует модули в кластере, если один или несколько существующих модулей исчезают по какой-либо причине. Это распространенная модель использования и одна из ключевых особенностей Kubernetes.
Другой распространенный шаблон использования Replication Controller — масштабирование:
Контроллер репликации позволяет легко увеличивать или уменьшать количество реплик вручную или с помощью агента автоматического масштабирования, просто обновляя поле реплик.
Этот блог покажет, как кластер Kubernetes можно легко масштабировать вверх и вниз.
Весь код, используемый в этом блоге, доступен по адресу kubernetes-java-sample .
Запустите контроллер репликации и проверьте
-
Запустите контроллер репликации как:
-
Получить статус стручков:
- Получить статус контроллера репликации:
./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml
replicationcontrollers/wildfly-rc
./cluster/kubectl.sh get -w po
NAME READY STATUS RESTARTS AGE
NAME READY STATUS RESTARTS AGE
wildfly-rc-bgtkg 0/1 Pending 0 1s
wildfly-rc-l8fqv 0/1 Pending 0 1s
wildfly-rc-bgtkg 0/1 Pending 0 1s
wildfly-rc-l8fqv 0/1 Pending 0 1s
wildfly-rc-bgtkg 0/1 Pending 0 1s
wildfly-rc-l8fqv 0/1 Pending 0 1s
wildfly-rc-bgtkg 0/1 Running 0 1m
wildfly-rc-l8fqv 0/1 Running 0 1m
wildfly-rc-bgtkg 1/1 Running 0 1m
wildfly-rc-l8fqv 1/1 Running 0 1m
Обязательно дождитесь, пока статус изменится на «Запущено». Запишите название стручков как wildfly-rc-bgtkg »и wildfly-rc-bgtkg».
./cluster/kubectl.sh get rc
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
wildfly-rc wildfly-rc-pod jboss/wildfly name=wildfly 2
Если запущено несколько контроллеров репликации, вы можете запросить этот конкретный контроллер, используя метку:
./cluster/kubectl.sh get rc -l name=wildfly
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
wildfly-rc wildfly-rc-pod jboss/wildfly name=wildfly 2
Масштабирование Kubernetes Cluster Up
Контроллер репликации позволяет динамически масштабировать модули вверх и вниз.
- Увеличьте количество стручков:
-
Статус стручков можно увидеть в другой оболочке:
./cluster/kubectl.sh scale --replicas=3 rc wildfly-rc
scaled
./cluster/kubectl.sh get -w po
NAME READY STATUS RESTARTS AGE
wildfly-rc-k6pk2 1/1 Running 0 47s
wildfly-rc-wez29 1/1 Running 0 47s
NAME READY STATUS RESTARTS AGE
wildfly-rc-aqaqn 0/1 Pending 0 0s
wildfly-rc-aqaqn 0/1 Pending 0 0s
wildfly-rc-aqaqn 0/1 Pending 0 0s
wildfly-rc-aqaqn 0/1 Running 0 2s
wildfly-rc-aqaqn 1/1 Running 0 11s
Обратите внимание, что новый Pod с именем wildfly-rc-aqaqn
создан.
Чешуйчатый кластер Кубернетес
- Уменьшите количество стручков:
- Статус использования стручков
-w
не правильно обновляется ( # 11338 ). Но статус стручков можно правильно увидеть как:
./cluster/kubectl.sh scale --replicas=1 rc wildfly-rc
scaled
./cluster/kubectl.sh get po
NAME READY STATUS RESTARTS AGE
wildfly-rc-k6pk2 1/1 Running 0 9m
Обратите внимание, что сейчас работает только один Pod.
Kubernetes динамически масштабирует стручки вверх и вниз с помощью scale --replicas
команды.
Весь код, используемый в этом блоге, доступен по адресу kubernetes-java-sample .