Установка в среде виртуализации zVirt
Сценарий установки позволяет в автоматизированном режиме развернуть виртуальные машины (узлы) из подготовленных шаблонов в среде виртуализации zVirt
и выполнить установку Nova Container Platform.
1. Предварительные условия
-
Вы ознакомились со способами установки Nova Container Platform.
-
Вы ознакомились с требованиями к установке Nova Container Platform.
-
Вы подготовили необходимые инструменты для работы согласно разделу Подготовка к установке платформы Nova Container Platform.
-
Среда виртуализации zVirt развернута и готова к эксплуатации.
В предоставленной инструкции в качестве примера используется доменное имя (FQDN) менеджера управления виртуализацией zVirt - |
2. Получение корневого сертификата zVirt
Процедура
-
Скачайте корневой сертификат zVirt с главной страницы веб-интерфейса менеджера управления zVirt c помощью браузера или следующей команды:
curl -ko ca-zvirt.cer https://zvirt.nova.internal/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
-
Закодируйте в
base64
полученный сертификат:cat ca-zvirt.cer | base64 -w0
Закодированный сертификат потребуется вам далее для установки в конфигурационном манифесте
nova-deployment-conf.yaml
для параметра tlsCaBundle. -
Перейдите в веб-интерфейс менеджера управления zVirt и снимите ограничение на количество сессий на время установки кластера:
-
Нажмите Управление - Пользователи и выберите пользователя, который будет использоваться для подключения к zVirt в процессе установки кластера
Nova Container Platform
. -
Выберите меню Управление ограничениями.
-
В меню Управление ограничениями установите для параметра Количество сессий значение равное 0.
-
3. Получение конфигурационного манифеста
Вы можете получить шаблон конфигурационного манифеста с помощью nova-ctl
. Для этого выполните команду:
nova-ctl init
Пример
nova-ctl init
Select the type of infrastructure provider:
[ 0] None (Bare metal)
[ 1] vSphere
[ 2] zVirt
> 2
Select deployment method:
[ 0] Online
[ 1] Online with HTTP proxy
[ 2] Offline
> 0
Cluster configuration file is stored in nova-configs/nova-deployment-conf.yaml
Proxy configuration file is stored in nova-configs/proxy.yaml
В директории nova-configs
находятся следующие файлы:
-
nova-deployment-conf.yaml
: основной конфигурационный манифест платформы. -
proxy.yaml
: конфигурационный манифест для установки платформы через HTTP-прокси.
При запросе шаблона файла конфигурации требуется выбрать тип провайдера инфраструктуры. В зависимости от выбранного типа шаблон файла будет оптимизирован для удобства заполнения конфигурации. |
Для установки Nova Container Platform в инфраструктуре zVirt выберите тип провайдера инфраструктуры zVirt
.
Информация
Для использования прокси-сервера заполните манифест
в соответствии с разделом документации по настройке прокси-сервера.proxy.yaml
4. Пример файла конфигурации установки
Вы можете кастомизировать файл конфигурации nova-deployment-conf.yaml
, если требуется указать более детальные настройки платформы. Подробную информацию о параметрах установки вы можете получить в разделе Спецификация параметров установки.
Пример файла установки
apiVersion: "config.nova-platform.io/v1alpha3"
kind: "Infrastructure"
metadata:
name: "cluster"
spec:
customerID: "5d4a2c84b6e22623" (1)
licenseKey: "a098f0aefdc021b643c2eb76c1cad0a8" (2)
version: "v4.0.2" (3)
infrastructureProvider: (4)
zvirt:
auth:
apiUrl: "https://zvirt.nova.internal/ovirt-engine/api" (5)
username: "user@internal" (6)
password: "password"
tlsCaBundle: "LS0k1JSURxekNDQXBPZ0F3SUJBZ0lWUS0tLQo=..." (7)
clusterId: "63724b66-e292-11ed-a2e9-00163e3c6ec5" (8)
templateId: "33bc2f6f-cb6f-4527-bd80-5755e9963562" (9)
vnicProfileId: "9a58ffa8-98d8-472c-9198-5f54a9f8aaac" (10)
csiStorageDomainName: "DataDomainName" (11)
hostGroup:
- name: "control-plane"
cpuCores: 1
cpuSockets: 4
cpuThreads: 1
memory: "8GiB"
maximumMemory: "16GiB"
- name: "infra"
cpuCores: 1
cpuSockets: 8
cpuThreads: 1
memory: "12GiB"
maximumMemory: "24GiB"
- name: "ingress"
cpuCores: 1
cpuSockets: 4
cpuThreads: 1
memory: "4GiB"
maximumMemory: "8GiB"
- name: "worker"
cpuCores: 1
cpuSockets: 4
cpuThreads: 1
memory: "8GiB"
maximumMemory: "16GiB"
clusterNodes: (12)
master: (13)
- hostGroup: "control-plane"
networkSpec:
hostname: "master.nova.internal"
ip: "10.251.11.111"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
infra: (14)
- hostGroup: "infra"
networkSpec:
hostname: "infra.nova.internal"
ip: "10.251.11.114"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
ingress: (15)
- hostGroup: "ingress"
networkSpec:
hostname: "ingress.nova.internal"
ip: "10.251.11.117"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
worker: (16)
- hostGroup: "worker"
networkSpec:
hostname: "worker.nova.internal"
ip: "10.251.11.119"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
clusterConfiguration: (17)
dnsBaseDomain: "apps.cls01.nova.internal"
cniProvider: "cilium"
extraOptions:
ingressTLSConfig:
internalCA: {}
1 | Идентификатор клиента, полученный из лицензионной информации. |
2 | Лицензионный ключ для установки кластера. |
3 | Версия платформы Nova Container Platform. |
4 | Блок конфигурации провайдера инфраструктуры zVirt. |
5 | URL-адрес API среды виртуализации zVirt. |
6 | Учётная запись в среде виртуализации zVirt используемая для подключения к zVirt API. |
7 | Цепочка корневых TLS-сертификатов для подключения к интерфейсу zVirt API. |
8 | Идентификатор кластера в среде виртуализации zVirt, в котором будут развернуты узлы кластера платформы Nova Container Platform. |
9 | Идентификатор шаблона используемого для развертывания узлов кластера платформы Nova Container Platform. |
10 | Идентификатор профиля сети в среде виртуализации zVirt. |
11 | Имя домена хранения в среде виртуализации zVirt. |
12 | Блок конфигурации узлов кластера Kubernetes. |
13 | Список мастер-узлов кластера Nova Container Platform. |
14 | Список инфраструктурных узлов кластера Nova Container Platform. |
15 | Список узлов балансировки кластера Nova Container Platform. |
16 | Список рабочих узлов кластера Nova Container Platform. |
17 | Блок дополнительных параметров настройки кластера. |
Информация
Убедитесь, что учётная запись, используемая для подключения к zVirt API, имеет достаточный набор привилегий для создания виртуальных машин. Узнать идентификатор профиля сети в среде виртуализации zVirt можно перейдя в zVirt API, например, https://zvirt.nova.internal/ovirt-engine/api/vnicprofiles.
Информация
Для использования собственного центра сертификации для генерации сертификатов заполните конфигурационный манифест nova-deployment-conf.yaml
в соответствии с разделом документации Использование пользовательских сертификатов.
5. Установка кластера в минимальной конфигурации
Для установки кластера в минимальной конфигурации вы подготовили не менее трех узлов:
-
1 мастер-узел кластера
-
1 инфраструктурный узел кластера
-
1 рабочий узла кластера
Добавьте данные узлы в соответствующие списки конфигурационного манифеста nova-deployment-conf.yaml
(master, infra, worker), например:
clusterNodes:
master:
- hostGroup: "control-plane"
networkSpec:
hostname: "master.nova.internal"
ip: "10.251.11.111"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
infra:
- hostGroup: "infra"
networkSpec:
hostname: "infra.nova.internal"
ip: "10.251.11.114"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
worker:
- hostGroup: "worker"
networkSpec:
hostname: "worker.nova.internal"
ip: "10.251.11.119"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
Информация
При установке кластера в минимальной конфигурации роль узлов балансировки входящего трафика (Ingress) выполняют рабочие узлы. Это необходимо учесть при настройке внешних балансировщиков, а также при создании DNS-записей.
6. Установка кластера в высокодоступной конфигурации
Для установки кластера в высокодоступной конфигурации вы подготовили следующие узлы:
-
3 мастер-узла кластера
-
3 инфраструктурных узла кластера
-
2 и более рабочих узла кластера
-
(Опционально) 2 и более узла балансировки входящих запросов
Добавьте необходимые узлы кластера в соответствующие списки файла конфигурации nova-deployment-conf.yaml
(master, infra, worker, ingress), например:
clusterNodes:
master:
- hostGroup: "control-plane"
networkSpec:
hostname: "master01.nova.internal"
ip: "10.251.11.111"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
- hostGroup: "control-plane"
networkSpec:
hostname: "master02.nova.internal"
ip: "10.251.11.112"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
- hostGroup: "control-plane"
networkSpec:
hostname: "master03.nova.internal"
ip: "10.251.11.113"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
infra:
- hostGroup: "infra"
networkSpec:
hostname: "infra01.nova.internal"
ip: "10.251.11.114"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
- hostGroup: "infra"
networkSpec:
hostname: "infra02.nova.internal"
ip: "10.251.11.115"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
- hostGroup: "infra"
networkSpec:
hostname: "infra03.nova.internal"
ip: "10.251.11.116"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
ingress:
- hostGroup: "ingress"
networkSpec:
hostname: "ingress01.nova.internal"
ip: "10.251.11.117"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
- hostGroup: "ingress"
networkSpec:
hostname: "ingress02.nova.internal"
ip: "10.251.11.118"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
worker:
- hostGroup: "heavy-worker"
networkSpec:
hostname: "worker01.nova.internal"
ip: "10.251.11.119"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
- hostGroup: "heavy-worker"
networkSpec:
hostname: "worker02.nova.internal"
ip: "10.251.11.120"
gateway: "10.251.11.254"
netmask: "255.255.255.0"
dns:
- "10.251.1.2"
- "10.250.0.254"
state: "present"
7. Запуск процесса установки
Необходимые условия
-
У вас есть закрытый ключ SSH на вашем локальном компьютере. Ключ будет использоваться для SSH аутентификации на узлах кластера в случае отладки или восстановления после аварийных ситуаций.
-
Вы подготовили шаблоны виртуальных машин и среды виртуализации для установки кластера.
-
Вы заполнили шаблон файла конфигурации установки
nova-deployment-conf.yaml
. -
(Опционально) Вы заполнили шаблон файла конфигурации прокси-сервера
proxy.yaml
.
Процедура
-
Запустите процесс установки кластера с помощью команды:
nova-ctl bootstrap --ssh-user <имя_пользователя> --ssh-key <закрытый ключ SSH>
В ходе процедуры
вся существующая конфигурация Nova Container Platform на узлах будет удалена. Вам необходимо согласиться с этим предупреждением, если вы уверены в том, что список узлов кластера указан верно.bootstrap
-
В процессе установки будет запрошено подтверждение на создание виртуальных машин и сетевых интерфейсов в среде виртуализации zVirt.
☕️ 1/11: Preparing infrastructure... The following actions will be preformed: + create ovirt_vm worker01-nova-internal + create ovirt_vm master01-nova-internal + create ovirt_vm ingress01-nova-internal + create ovirt_vm infra01-nova-internal + create ovirt_vm ingress02-nova-internal + create ovirt_vm master02-nova-internal + create ovirt_vm infra02-nova-internal + create ovirt_vm worker02-nova-internal + create ovirt_nic master01-nova-internal + create ovirt_nic infra01-nova.internal + create ovirt_nic worker01-nova-internal + create ovirt_vm master03-nova-internal + create ovirt_vm infra03-nova-internal + create ovirt_nic ingress02-nova-internal + create ovirt_nic infra02-nova-internal + create ovirt_vm_start master01-nova-internal + create ovirt_nic master02-nova-internal + create ovirt_vm_start infra01-nova-internal + create ovirt_vm_start ingress02-nova-internal + create ovirt_nic ingress01-nova-internal + create ovirt_nic master03-nova-internal + create ovirt_nic infra03-nova-internal + create ovirt_vm_start worker01-nova-internal + create ovirt_nic worker02-nova-internal + create ovirt_vm_start master02-nova-internal + create ovirt_vm_start infra02-nova-internal + create ovirt_vm_start master03-nova-internal + create ovirt_vm_start worker02-nova-internal + create ovirt_vm_start ingress01-nova-internal + create ovirt_vm_start infra03-nova-internal Are you sure you want to apply these changes? (yes/no) [yes]
8. Ожидание процесса установки
Вы можете наблюдать за процессом установки Nova Container Platform в консоли:
The bootstrap procedure implies the initial installation of the platform. All existing configuration will be deleted. Are you sure you want to continue? (yes/no) [no] yes
■ Preparing infrastructure... done
■ Validating cluster nodes... done
■ Validating license... done
■ Setting up secrets store... done
■ Setting up PKI... done
■ Setting up authentication... done
■ Preparing cluster nodes... done
■ Deploying Kubernetes cluster... done
■ Deploying platform applications... done
🚀 Welcome to the NOVA container platform!
Your working directory contains the following installation assets:
• Kubernetes client configuration: kubeadmin.conf
• OAuth admin credentials: oauth-credentials.txt
• Secrets store tokens: secrets-store-tokens.txt
• Internal CA bundle: nova-root-ca.pem
Read the official NOVA Container Platform documentation to discover features, expand and customize your cluster.
https://docs.nova-platform.io
Команда завершится успешно, когда все компоненты Nova Container Platform будут установлены и доступны.
После успешного завершения установки кластера утилита nova-ctl
сохраняет в рабочей директории файлы с информацией, необходимой для доступа к кластеру и его компонентам:
Файл | Описание |
---|---|
|
Конфигурационный файл с учетной записью администратора кластера для утилиты |
|
Учетная запись администратора кластера для авторизации по протоколу OAuth. |
|
Токены для доступа к системе управления секретами Secrets Manager. |
|
Корневой TLS-сертификат Kubernetes. Данным сертификатом подписаны все последующие подчиненные центры сертификации. |
Не забудьте сохранить учетные данные в надежном месте и удалить их с локальной машины. |
9. Проверка подключения к кластеру
После установки платформы вы можете выполнить пробное подключение к кластеру Kubernetes. Для этого выполните приведенные ниже команды.
Процедура
-
Определите в консоли переменную
KUBECONFIG
, содержащую путь к полученному после установки файлуkubeadmin.conf
:export KUBECONFIG=<путь>/kubeadmin.conf
-
Проверьте, что вы можете выполнять команды
kubectl
:kubectl cluster-info
Пример
$ kubectl cluster-info Kubernetes control plane is running at https://172.31.101.24:6443 CoreDNS is running at https://172.31.101.24:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
-
Проверьте список узлов кластера:
kubectl get nodes
Пример
$ kubectl get nodes master01.nova.internal Ready control-plane 27h v1.26.8 master02.nova.internal Ready control-plane 27h v1.26.8 master03.nova.internal Ready control-plane 27h v1.26.8 infra01.nova.internal Ready infra 27h v1.26.8 worker01.nova.internal Ready worker 27h v1.26.8 ingress01.nova.internal Ready ingress 27h v1.26.8 infra02.nova.internal Ready infra 27h v1.26.8 infra03.nova.internal Ready infra 27h v1.26.8 worker02.nova.internal Ready worker 27h v1.26.8 ingress02.nova.internal Ready ingress 27h v1.26.8
-
Проверьте версию установленной платформы:
kubectl get clusterversions version
Пример
$ kubectl get clusterversions version NAME VERSION AGE version v4.0.2 12m