Перейти к содержанию

Установка в среде виртуализации zVirt

Вы можете установить кластер Nova Container Platform в среде виртуализации zVirt.

Сценарий установки позволяет в автоматизированном режиме развернуть виртуальные машины (узлы) из подготовленных шаблонов виртуальных машин в среде виртуализации zVirt и получить возможность упрощенного масштабирования узлов кластера Nova Container Platform.

В документации вы найдете все необходимые шаги, чтобы корректно выполнить подготовку вашей инфраструктуры и узлов к установке Nova Container Platform.

Предварительные условия

Примечание

В предоставленной инструкции в качестве примера используется доменное имя (FQDN) менеджера управления виртуализацией zVirt - zvirt.nova.internal. Данное имя необходимо заменить на действительное доменное имя вашего менеджера управления.

Получение корневого сертификата zVirt

Процедура

  1. Скачайте корневой сертификат zVirt с главной страницы веб-интерфейса менеджера управления zVirt c помощью браузера или следующей команды:

    curl -ko ca-zvirt.cer https://zvirt.nova.internal/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
    
  2. Закодируйте в base64 полученный сертификат:

    cat ca-zvirt.cer | base64 -w0
    

    Внимание

    Закодированный сертификат необходимо указать в файле конфигурации установки nova-deployment-conf.yaml для параметра tlsCaBundle.

  3. Перейдите в веб-интерфейс менеджера управления zVirt и снимите ограничение на количество сессий на время установки кластера:

    • Нажмите Управление - Пользователи и выберите пользователя, который будет использоваться для подключения к zVirt в процессе установки кластера Nova Container Platform.
    • Выберите меню Управление ограничениями.
    • В меню Управление ограничениями установите для параметра Количество сессий значение равное 0.

Получение шаблона файла конфигурации установки

Вы можете получить шаблон файла конфигурации с помощью nova-ctl. Для этого выполните команду:

nova-ctl init

Пример

$ nova-ctl init
Please, select the type of infrastructure provider:
[ 0] None (Bare metal)
[ 1] zVirt
> 1
Cluster configuration file is stored in nova-deployment-conf.yaml

Внимание

При запросе шаблона файла конфигурации требуется выбрать тип поставщика инфраструктуры. В зависимости от выбранного типа шаблон файла будет оптимизирован для удобства заполнения конфигурации.

Для установки Nova Container Platform в пользовательской инфраструктуре выберите тип поставщика инфраструктуры zVirt.

В результате выполнения команды вы получите в рабочей директории шаблон файла конфигурации nova-deployment-conf.yaml.

Пример файла конфигурации установки

Вы можете кастомизировать файл конфигурации nova-deployment-conf.yaml, если требуется указать более детальные настройки различных подсистем кластера. Подробную информацию о параметрах установки вы можете получить в разделе Спецификация параметров установки.

Пример файла установки

apiVersion: "config.nova-platform.io/v1alpha1"
kind: "Infrastructure"
metadata:
  name: "cluster"
spec:
  customerID: "5d4a2c84b6e22623" # (1)
  licenseKey: "a098f0aefdc021b643c2eb76c1cad0a8" # (2)
  version: "v2.1.0" # (3)
  infrastructureProvider: # (4)
    zvirt:
      auth:
        apiUrl: "https://zvirt.nova.internal/ovirt-engine/api"
        username: "user@internal"
        password: "password"
        tlsCaBundle: "LS0k1JSURxekNDQXBPZ0F3SUJBZ0lDRUFBd0RRWUpFMVVFQmhNQ1ZWTXhFVEFQQmdOVkJBb0LS0tLQo=..."
      clusterId: "63724b66-e292-11ed-a2e9-00163e3c6ec5"
      templateId: "33bc2f6f-cb6f-4527-bd80-5755e9963562"
      vnicProfileId: "9a58ffa8-98d8-472c-9198-5f54a9f8aaac"
      csiStorageDomainName: "DataDomainName"
      hostGroup:
        - name: "control-plane"
          cpuCores: 4
          cpuSockets: 1
          cpuThreads: 1
          memory: "8GiB"
          maximumMemory: "16GiB"
        - name: "infra"
          cpuCores: 6
          cpuSockets: 1
          cpuThreads: 1
          memory: "12GiB"
          maximumMemory: "24GiB"
        - name: "ingress"
          cpuCores: 2
          cpuSockets: 1
          cpuThreads: 1
          memory: "4GiB"
          maximumMemory: "8GiB"
        - name: "worker"
          cpuCores: 4
          cpuSockets: 1
          cpuThreads: 1
          memory: "8GiB"
          maximumMemory: "16GiB"
  clusterNodes: # (5)
    master: # (6)
      - hostGroup: "control-plane"
        networkSpec:
          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: # (7)
      - hostGroup: "infra"
        networkSpec:
          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: # (8)
      - hostGroup: "ingress"
        networkSpec:
          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: # (9)
      - hostGroup: "worker"
        networkSpec:
          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"
  modules: # (10)
    base:
      common:
        dnsBaseDomain: "apps.cls01.nova.internal"
        ingressTLSConfig:
          internalCA:
            enabled: true
  1. Идентификатор клиента, полученный из лицензионной информации.
  2. Лицензионный ключ для установки кластера.
  3. Версия ПО кластера Nova Container Platform.
  4. Блок конфигурации поставщика инфраструктуры zVirt.
  5. Блок конфигурации узлов кластера Kubernetes.
  6. Список мастер-узлов кластера Nova Container Platform. Для каждого узла должны быть заполнены параметры в соответствии со спецификацией.
  7. Список инфраструктурных узлов кластера Nova Container Platform. Для каждого узла должны быть заполнены параметры в соответствии со спецификацией.
  8. Список Ingress-узлов кластера Nova Container Platform. Для каждого узла должны быть заполнены параметры в соответствии со спецификацией.
  9. Список рабочих узлов кластера Nova Container Platform. Для каждого узла должны быть заполнены параметры в соответствии со спецификацией.
  10. Блок конфигурации базовых и дополнительных модулей платформы.

Установка кластера в минимальной конфигурации

Для установки кластера в минимальной конфигурации вам необходимо подготовить не менее трех узлов:

  • 1 мастер-узел кластера
  • 1 инфраструктурный узел кластера
  • 1 рабочий узла кластера

Данная конфигурация позволяет создавать небольшие, ресурсоэффективные кластеры для администраторов и разработчиков в средах тестирования, разработки и производства.

При этом, кластер Nova Container Platform в минимальной конфигурации имеет тот же набор компонентов, что и в высокодоступной конфигурации, но число реплик компонентов снижено.

Добавьте необходимые узлы кластера в соответствующие списки файла конфигурации nova-deployment-conf.yaml - master, infra, worker, например:

  clusterNodes:
    master:
      - hostGroup: "control-plane"
        networkSpec:
          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:
          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:
          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-записей.

Установка кластера в высокодоступной конфигурации

Для установки кластера в высокодоступной конфигурации вам необходимо подготовить большее количество узлов:

  • 3 мастер-узла кластера
  • 3 инфраструктурных узла кластера
  • 2 и более рабочих узла кластера
  • 2 и более узла балансировки входящих запросов

Таким образом, будет выполнено логическое разделение ролей узлов и размещаемых на них компонентов кластера. При этом, устанавливаемые компоненты будут иметь большее число реплик для повышения доступности служебных сервисов кластера.

Добавьте необходимые узлы кластера в соответствующие списки файла конфигурации nova-deployment-conf.yaml - master, infra, worker, ingress, например:

  clusterNodes:
    master:
      - hostGroup: "control-plane"
        networkSpec:
          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:
          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:
          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:
          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:
          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:
          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:
          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:
          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:
          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:
          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"
      - hostGroup: "heavy-worker"
        networkSpec:
          ip: "10.251.11.121"
          gateway: "10.251.11.254"
          netmask: "255.255.255.0"
          dns:
            - "10.251.1.2"
            - "10.250.0.254"
        state: "present"

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

Необходимые условия

  • У вас есть закрытый ключ SSH на вашем локальном компьютере, который нужно предоставить утилите установки. Ключ будет использоваться для SSH аутентификации на узлах кластера в случае отладки или восстановления после аварийных ситуаций.
  • Вы подготовили шаблоны виртуальных машин и среды виртуализации для установки кластера.
  • Вы заполнили шаблон файла конфигурации установки nova-deployment-conf.yaml.

Процедура

  1. Запустите процесс установки кластера с помощью команды:

    nova-ctl bootstrap --ssh-user <имя_пользователя> --ssh-key <закрытый ключ SSH>
    

    Внимание

    Процедура bootstrap подразумевает первоначальную установку платформы Nova Container Platform на предоставляемые в конфигурации узлы. Вся существующая конфигурация Nova Container Platform на узлах будет удалена. Вам необходимо согласиться с этим предупреждением, если вы уверены в том, что список узлов кластера указан верно.

  2. В процессе установки будет запрошено подтверждение на создание виртуальных машин и сетевых интерфейсов в среде виртуализации zVirt.

    ☕️ 1/11: Preparing infrastructure...
    The following actions will be preformed:
    + create ovirt_vm node-worker-a0bxwbud
    + create ovirt_vm node-master-49c7zd7d
    + create ovirt_vm node-worker-caci8rpr
    + create ovirt_vm node-worker-lzxopr2k
    + create ovirt_vm node-worker-o1nfatzh
    + create ovirt_vm node-master-p6u849f5
    + create ovirt_vm node-worker-hgztrrxx
    + create ovirt_vm node-worker-wklaoi0y
    + create ovirt_nic node-master-49c7zd7d
    + create ovirt_nic node-worker-lzxopr2k
    + create ovirt_nic node-worker-a0bxwbud
    + create ovirt_vm node-master-oxeh3yso
    + create ovirt_vm node-worker-py0x4krd
    + create ovirt_vm node-worker-q4gep5b3
    + create ovirt_nic node-worker-o1nfatzh
    + create ovirt_nic node-worker-hgztrrxx
    + create ovirt_nic node-worker-q4gep5b3
    + create ovirt_vm_start node-master-49c7zd7d
    + create ovirt_nic node-master-p6u849f5
    + create ovirt_vm_start node-worker-lzxopr2k
    + create ovirt_vm_start node-worker-o1nfatzh
    + create ovirt_nic node-worker-caci8rpr
    + create ovirt_nic node-master-oxeh3yso
    + create ovirt_nic node-worker-py0x4krd
    + create ovirt_vm_start node-worker-a0bxwbud
    + create ovirt_nic node-worker-wklaoi0y
    + create ovirt_vm_start node-master-p6u849f5
    + create ovirt_vm_start node-worker-hgztrrxx
    + create ovirt_vm_start node-worker-q4gep5b3
    + create ovirt_vm_start node-master-oxeh3yso
    + create ovirt_vm_start node-worker-wklaoi0y
    + create ovirt_vm_start node-worker-caci8rpr
    + create ovirt_vm_start node-worker-py0x4krd
    Are you sure you want to apply these changes? (yes/no) [yes] 
    

Ожидание процесса установки

Вы можете наблюдать за процессом установки 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 сохраняет в рабочей директории файлы с конфиденциональной информацией, необходимой для доступа к кластеру и его компонентам:

Файл Описание
kubeadmin.conf Конфигурационный файл с учетной записью администратора кластера для утилиты kubectl, необходимой для работы с Kubernetes. Учетная запись имеет роль cluster-admin в Kubernetes.
oauth-credentials.txt Учетная запись администратора кластера для авторизации по протоколу OAuth.
secrets-store-tokens.txt Токены для доступа к системе управления секретами Secrets Manager.
nova-root-ca.pem Корневой TLS-сертификат Kubernetes. Данным сертификатом подписаны все последующие подчиненные центры сертификации.

Внимание

Не забудьте сохранить учетные данные в надежном месте и удалить их с локальной машины.

Проверка подключения к кластеру

Необходимые условия

  • Кластер Nova Сontainer Platform успешно установлен.
  • Вы установили утилиту kubectl для работы с Kubernetes.

Процедура

  1. Определите в консоли переменную KUBECONFIG, содержащую путь к полученному после установки файлу kubeadmin.conf:

    export KUBECONFIG=<путь>/kubeadmin.conf
    
  2. Проверьте, что вы можете выполнять команды 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'.
    
  3. Проверьте список узлов кластера:

    kubectl get nodes
    

    Пример

    $ kubectl get nodes
    
    node-master-49c7zd7d.nova-dvibha82dnwr.local   Ready    control-plane   27h   v1.26.4-65+537aad6db9b078
    node-master-oxeh3yso.nova-dvibha82dnwr.local   Ready    control-plane   27h   v1.26.4-65+537aad6db9b078
    node-master-p6u849f5.nova-dvibha82dnwr.local   Ready    control-plane   27h   v1.26.4-65+537aad6db9b078
    node-worker-a0bxwbud.nova-dvibha82dnwr.local   Ready    infra           27h   v1.26.4-65+537aad6db9b078
    node-worker-caci8rpr.nova-dvibha82dnwr.local   Ready    worker          27h   v1.26.4-65+537aad6db9b078
    node-worker-hgztrrxx.nova-dvibha82dnwr.local   Ready    ingress         27h   v1.26.4-65+537aad6db9b078
    node-worker-lzxopr2k.nova-dvibha82dnwr.local   Ready    infra           27h   v1.26.4-65+537aad6db9b078
    node-worker-o1nfatzh.nova-dvibha82dnwr.local   Ready    infra           27h   v1.26.4-65+537aad6db9b078
    node-worker-py0x4krd.nova-dvibha82dnwr.local   Ready    worker          27h   v1.26.4-65+537aad6db9b078
    node-worker-q4gep5b3.nova-dvibha82dnwr.local   Ready    worker          27h   v1.26.4-65+537aad6db9b078
    node-worker-wklaoi0y.nova-dvibha82dnwr.local   Ready    ingress         27h   v1.26.4-65+537aad6db9b078
    

Следующие шаги