Горизонтальное масштабирование кластера Kubernetes
1. Масштабирование кластера, установленного универсальным методом (UPI)
Необходимые условия
-
Вы подготовили виртуальный или физический узел для добавления в кластер согласно разделу Подготовка к установке платформы Nova Container Platform.
-
На вашем локальном компьютере установлена утилита nova-ctl.
-
У вас есть доступ к Kubernetes API с привилегиями администратора кластера (
cluster-admin
). -
У вас есть закрытый ключ SSH на вашем локальном компьютере, который нужно предоставить утилите
nova-ctl
. -
У вас есть токен доступа к хранилищу секретов Secrets Manager с привилегиями
root
.
При подготовке нового узла используйте такие же имя пользователя и открытую часть ключа SSH, как и на остальных узлах кластера, которые использовались на подготовительном этапе. |
Процедура
-
Запустите процесс масштабирования узлов кластера с помощью команды:
nova-ctl scale --ssh-user <имя_пользователя> --ssh-key <закрытый ключ SSH>
В качестве аргументов
--ssh-key
и--ssh-user
укажите информацию, использованную на этапе конфигурации ключевой пары SSH. -
Далее для временного редактирования будет открыт файл конфигурации кластера в текстовом редакторе
vi
. -
Добавьте новый узел в блок конфигурации ClusterNodes и сохраните изменения.
Пример
nova-ctl scale --ssh-user nova-installer --ssh-key id_rsa.pem spec: ... clusterNodes: ... worker: # Роль узла в кластере Kubernetes. - hostGroup: "worker" # Существующий узел в кластере Kubernetes. networkSpec: hostname: "worker01.nova.internal" ip: "172.31.101.26" state: "present" ... - hostGroup: "worker" # Добавляемый узел в кластер Kubernetes. networkSpec: hostname: "worker02.nova.internal" ip: "172.31.101.27" state: "present"
-
На запрос
Enter Vault root token:
введите токен доступа к хранилищу секретов Secrets Manager с привилегиямиroot
, после чего начнется процесс добавления узла в кластер. -
Дождитесь сообщения об успешном выполнении операции.
Пример
■ Validating cluster nodes... done ■ Validating license... done ■ Cleaning up... done ■ Preparing cluster nodes... done 🚀 Cluster is successfully scaled.
-
Проверьте состояние узлов кластера Kubernetes после успешного масштабирования согласно руководству.
2. Масштабирование кластера, установленного в среде zVirt (IPI)
Необходимые условия
-
Вы подготовили виртуальный или физический узел для добавления в кластер согласно разделу Подготовка к установке платформы Nova Container Platform.
-
На вашем локальном компьютере установлена утилита nova-ctl.
-
У вас есть доступ к Kubernetes API с привилегиями администратора кластера (
cluster-admin
). -
У вас есть закрытый ключ SSH на вашем локальном компьютере, который нужно предоставить утилите
nova-ctl
. -
У вас есть токен доступа к хранилищу секретов Secrets Manager с привилегиями
root
.
Если вы решили использовать новый шаблон для виртуальной машины, то при его подготовке используйте такие же имя пользователя и открытую часть ключа SSH, как и на остальных узлах кластера, которые использовались на подготовительном этапе. |
Процедура
-
Запустите процесс масштабирования узлов кластера с помощью команды:
bash nova-ctl scale --ssh-user <имя_пользователя> --ssh-key <закрытый ключ SSH>
В качестве аргументов
--ssh-key
и--ssh-user
укажите информацию, использованную на этапе конфигурации ключевой пары SSH. -
Далее для временного редактирования будет открыт файл конфигурации кластера в текстовом редакторе
vi
. -
Добавьте новый узел в блок конфигурации ClusterNodes и сохраните изменения.
Пример
nova-ctl scale --ssh-user nova-installer --ssh-key id_rsa.pem spec: ... clusterNodes: ... worker: # Роль узла в кластере Kubernetes. - hostGroup: "worker" # Существующий узел в кластере Kubernetes. networkSpec: hostname: "worker01.nova.internal" ip: "10.251.11.120" gateway: "10.251.11.254" netmask: "255.255.255.0" dns: - "10.251.1.2" state: "present" ... - hostGroup: "example-worker" # Добавляемый узел в кластер Kubernetes. networkSpec: hostname: "worker02.nova.internal" ip: "10.251.11.119" gateway: "10.251.11.254" netmask: "255.255.255.0" dns: - "10.251.1.2" state: "present"
-
При необходимости вы можете добавить в блок hostGroup описание новой группы узлов, в которой можно указать идентификатор нового шаблона виртуальной машины.
Пример
nova-ctl scale --ssh-user nova-installer --ssh-key id_rsa.pem spec: ... infrastructureProvider: ... zvirt: ... hostGroup: ... - name: "example-worker" templateId: "729df7ab-900b-4df7-ac40-01b70629dd4e" vnicProfileId: "9a58ffa8-98d8-472c-9198-5f54a9f8aaac" cpuCores: 1 cpuSockets: 8 cpuThreads: 1 memory: "8GiB" maximumMemory: "16GiB"
-
На запрос
Enter Vault root token:
введите токен доступа к хранилищу секретов Secrets Manager с привилегиямиroot
, после чего начнется процесс добавления узла в кластер. -
В процессе масштабирования будет запрошено подтверждение на создание виртуальных машин и сетевых интерфейсов в среде виртуализации zVirt.
Пример
nova-ctl scale –ssh-user nova-installer –ssh-key id_rsa.pem ■ Validating license… done ☕️ 3/8: Preparing infrastructure… The following actions will be preformed: * create ovirt_vm worker01-nova-internal * create ovirt_vm worker02-nova-internal * create ovirt_nic worker01-nova-internal * create ovirt_nic worker02-nova-internal * create ovirt_vm_start worker01-nova-internal * create ovirt_vm_start worker02-nova-internal Are you sure you want to apply these changes? (yes/no) [no] yes
-
Дождитесь сообщения об успешном выполнении операции.
Пример
nova-ctl scale --ssh-user nova-installer --ssh-key id_rsa.pem ■ Validating license... done ■ Preparing infrastructure... done ■ Validating cluster nodes... done ■ Preparing cluster nodes... done ■ Scaling Kubernetes cluster... done 🚀 Cluster is successfully scaled.
-
Проверьте состояние узлов кластера Kubernetes после успешного масштабирования согласно руководству.