Статьи

Масштабирующий кластер Кубернетес

Автоматический перезапуск модулей в контроллере репликации кластера Kubernetes показывает, как Kubernetes перепланирует модули в кластере, если один или несколько существующих модулей исчезают по какой-либо причине. Это распространенная модель использования и одна из ключевых особенностей Kubernetes.

Другой распространенный шаблон использования Replication Controller — масштабирование:

Контроллер репликации позволяет легко увеличивать или уменьшать количество реплик вручную или с помощью агента автоматического масштабирования, просто обновляя поле реплик.

Контроллер репликации # Масштабирование

Этот блог покажет, как кластер Kubernetes можно легко масштабировать вверх и вниз.

Весь код, используемый в этом блоге, доступен по адресу kubernetes-java-sample .

Запустите контроллер репликации и проверьте

  1. Запустите контроллер репликации как:
    1
    2
    ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml
    replicationcontrollers/wildfly-rc
  2. Получить статус стручков:
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    ./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-гс-bgtkg».

  3. Получить статус контроллера репликации:
    1
    2
    3
    ./cluster/kubectl.sh get rc
    CONTROLLER   CONTAINER(S)     IMAGE(S)        SELECTOR       REPLICAS
    wildfly-rc   wildfly-rc-pod   jboss/wildfly   name=wildfly   2

    Если запущено несколько контроллеров репликации, вы можете запросить этот конкретный контроллер, используя метку:

    1
    2
    3
    ./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

Контроллер репликации позволяет динамически масштабировать модули вверх и вниз.

  1. Увеличьте количество стручков:
    1
    2
    ./cluster/kubectl.sh scale --replicas=3 rc wildfly-rc
    scaled
  2. Статус стручков можно увидеть в другой оболочке:
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    ./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 .

Чешуйчатый кластер Кубернетес

  1. Уменьшите количество стручков:
    1
    2
    ./cluster/kubectl.sh scale --replicas=1 rc wildfly-rc
    scaled
  2. Состояние модулей, использующих -w , не обновляется правильно ( # 11338 ). Но статус стручков можно правильно увидеть как:
    1
    2
    3
    ./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 .

Наслаждайтесь!

Ссылка: Масштабирование Kubernetes Cluster от нашего партнера JCG Аруна Гупты в Miles to go 2.0… блог.