Универсальная установка для различных сред
Вы можете установить кластер Nova Container Platform в любой подготовленной инфраструктуре, включая виртуализацию и облачные среды.
Сценарий универсальной установки предназначен для случаев, когда необходимые узлы (виртуальные машины и серверы) подготавливаются пользователем самостоятельно до установки Nova Container Platform.
В документации вы найдете все необходимые шаги, чтобы корректно выполнить подготовку вашей инфраструктуры и узлов к установке Nova Container Platform.
Предварительные условия
- Вы ознакомились с подробностями о процессах установки и обновления Nova Container Platform.
- Вы ознакомились с документацией по выбору способа установки кластера.
- Вы ознакомились с требованиями к установке Nova Container Platform.
- Вы подготовили необходимые инструменты для работы согласно разделу Подготовка к установке платформы Nova Container Platform.
Получение шаблона файла конфигурации установки
Вы можете получить шаблон файла конфигурации с помощью nova-ctl
. Для этого выполните команду:
Пример
$ nova-ctl init
Please, select the type of infrastructure provider:
[ 0] None (Bare metal)
[ 1] zVirt
> 0
Cluster configuration file is stored in nova-deployment-conf.yaml
Внимание
При запросе шаблона файла конфигурации требуется выбрать тип поставщика инфраструктуры. В зависимости от выбранного типа шаблон файла будет оптимизирован для удобства заполнения конфигурации.
Для установки Nova Container Platform в пользовательской инфраструктуре выберите тип поставщика инфраструктуры None (Bare metal)
.
В результате выполнения команды вы получите в рабочей директории шаблон файла конфигурации 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)
none: {}
clusterNodes: # (5)
master: # (6)
- networkSpec:
ip: "172.31.101.24"
state: "present"
hostGroup: "control-plane"
infra: # (7)
- hostGroup: "infra"
networkSpec:
ip: "172.31.101.25"
state: "present"
worker: # (8)
- hostGroup: "worker"
networkSpec:
ip: "172.31.101.26"
state: "present"
clusterConfiguration: # (9)
cniProvider: "cilium"
extraOptions:
kubePodSubnet: "10.233.64.0/18"
kubeServiceAddresses: "10.233.0.0/18"
kubeNetworkNodePrefix: "24"
k8sAPIAdditionalSANs:
- "api.nova.acme.internal"
modules: # (10)
base:
common:
dnsBaseDomain: "apps.cls01.nova.internal"
ingressTLSConfig:
internalCA:
enabled: true
- Идентификатор клиента, полученный из лицензионной информации.
- Лицензионный ключ для установки кластера.
- Версия ПО кластера Nova Container Platform.
- Блок конфигурации поставщика инфраструктуры.
- Блок конфигурации узлов кластера Kubernetes.
- Список мастер-узлов кластера Nova Container Platform. Для каждого узла должны быть заполнены параметры в соответствии со спецификацией.
- Список инфраструктурных узлов кластера Nova Container Platform. Для каждого узла должны быть заполнены параметры в соответствии со спецификацией.
- Список рабочих узлов кластера Nova Container Platform. Для каждого узла должны быть заполнены параметры в соответствии со спецификацией.
- Блок дополнительных параметров настройки кластера.
- Блок конфигурации базовых и дополнительных модулей платформы.
Установка кластера в минимальной конфигурации
Для установки кластера в минимальной конфигурации вам необходимо подготовить не менее трех узлов:
- 1 мастер-узел кластера
- 1 инфраструктурный узел кластера
- 1 рабочий узла кластера
Данная конфигурация позволяет создавать небольшие, ресурсоэффективные кластеры для администраторов и разработчиков в средах тестирования, разработки и производства.
При этом, кластер Nova Container Platform в минимальной конфигурации имеет тот же набор компонентов, что и в высокодоступной конфигурации, но число реплик компонентов снижено.
Добавьте необходимые узлы кластера в соответствующие списки файла конфигурации nova-deployment-conf.yaml
- master
, infra
, worker
, например:
clusterNodes:
master:
- networkSpec:
ip: "172.31.101.24"
state: "present"
hostGroup: "control-plane"
infra:
- hostGroup: "infra"
networkSpec:
ip: "172.31.101.25"
state: "present"
worker:
- hostGroup: "worker"
networkSpec:
ip: "172.31.101.26"
state: "present"
Информация
При установке кластера в минимальной конфигурации роль узлов балансировки входящего трафика (Ingress) выполняют рабочие узлы. Это необходимо учесть при настройке внешних балансировщиков, а также при создании DNS-записей.
Установка кластера в высокодоступной конфигурации
Для установки кластера в высокодоступной конфигурации вам необходимо подготовить большее количество узлов:
- 3 мастер-узла кластера
- 3 инфраструктурных узла кластера
- 2 и более рабочих узла кластера
- 2 и более узла балансировки входящих запросов
Таким образом, будет выполнено логическое разделение ролей узлов и размещаемых на них компонентов кластера. При этом, устанавливаемые компоненты будут иметь большее число реплик для повышения доступности служебных сервисов кластера.
Добавьте необходимые узлы кластера в соответствующие списки файла конфигурации nova-deployment-conf.yaml
- master
, infra
, worker
, ingress
, например:
clusterNodes:
master:
- networkSpec:
ip: "172.31.101.24"
state: "present"
hostGroup: "control-plane"
- networkSpec:
ip: "172.31.101.25"
state: "present"
hostGroup: "control-plane"
- networkSpec:
ip: "172.31.101.26"
state: "present"
hostGroup: "control-plane"
infra:
- hostGroup: "infra"
networkSpec:
ip: "172.31.101.27"
state: "present"
- hostGroup: "infra"
networkSpec:
ip: "172.31.101.28"
state: "present"
- hostGroup: "infra"
networkSpec:
ip: "172.31.101.29"
state: "present"
worker:
- hostGroup: "worker"
networkSpec:
ip: "172.31.101.30"
state: "present"
- hostGroup: "worker"
networkSpec:
ip: "172.31.101.31"
state: "present"
- hostGroup: "worker"
networkSpec:
ip: "172.31.101.32"
state: "present"
ingress:
- hostGroup: "worker"
networkSpec:
ip: "172.31.101.30"
state: "present"
- hostGroup: "worker"
networkSpec:
ip: "172.31.101.31"
state: "present"
Запуск процесса установки
Необходимые условия
- У вас есть закрытый ключ SSH на вашем локальном компьютере, который нужно предоставить утилите установки. Ключ будет использоваться для SSH аутентификации на узлах кластера в случае отладки или восстановления после аварийных ситуаций.
- Вы подготовили необходимые узлы и пользовательскую инфраструктуру для установки кластера.
- Вы заполнили шаблон файла конфигурации установки
nova-deployment-conf.yaml
.
Процедура
-
Запустите процесс установки кластера с помощью команды:
Пример
Внимание
Процедура bootstrap
подразумевает первоначальную установку платформы Nova Container Platform на предоставляемые в конфигурации узлы. Вся существующая конфигурация Nova Container Platform на узлах будет удалена. Вам необходимо согласиться с этим предупреждением, если вы уверены в том, что список узлов кластера указан верно.
Ожидание процесса установки
Вы можете наблюдать за процессом установки Nova Container Platform в консоли:
# nova-ctl bootstrap --ssh-user nova-installer --ssh-key id_rsa.pem
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
■ 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
☕️ 10/11: Deploying platform applications...
■ cert-manager deployed
■ cluster-crds deployed
■ console deployed
■ continuous-delivery deployed
■ descheduler deployed
■ hubble-ui deployed
■ ingress-nginx deployed
■ local-path-provisioner deployed
■ logging deployed
■ monitoring deployed
■ reflector deployed
■ reloader deployed
■ vpa deployed
🚀 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.
Процедура
-
Определите в консоли переменную
KUBECONFIG
, содержащую путь к полученному после установки файлуkubeadmin.conf
: -
Проверьте, что вы можете выполнять команды
kubectl
:Пример
-
Проверьте список узлов кластера:
Пример
$ kubectl get nodes NAME STATUS ROLES AGE VERSION node-master-hqa45cbl.nova-wp3sx2i4fwa8.local Ready control-plane 69m v1.26.4-65+537aad6db9b078 node-worker-bug3x8h1.nova-wp3sx2i4fwa8.local Ready ingress,worker 69m v1.26.4-65+537aad6db9b078 node-worker-w46zw2j1.nova-wp3sx2i4fwa8.local Ready infra 69m v1.26.4-65+537aad6db9b078