Статьи

Масштабирование кластера Kubernetes

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

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

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

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

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

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

  1. Запустите контроллер репликации как:

  2. ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml 
    replicationcontrollers/wildfly-rc
  3. Получить статус стручков:

  4. ./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».

  5. Получить статус контроллера репликации:
  6. ./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

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

  1. Увеличьте количество стручков:
  2. ./cluster/kubectl.sh scale --replicas=3 rc wildfly-rc
    scaled
  3. Статус стручков можно увидеть в другой оболочке:

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