Универсальная установка для различных сред
Сценарий универсальной установки предназначен для случаев, когда необходимые узлы (виртуальные машины и серверы) подготавливаются пользователем самостоятельно до установки Nova Container Platform.
1. Предварительные условия
-
Вы ознакомились со способами установки Nova Container Platform.
-
Вы ознакомились с требованиями к установке Nova Container Platform.
-
Вы подготовили необходимые инструменты для работы согласно разделу Подготовка к установке платформы Nova Container Platform.
2. Получение конфигурационного манифеста
Вы можете получить шаблон конфигурационного манифеста с помощью nova-ctl
. Для этого выполните команду:
nova-ctl init
Пример
nova-ctl init
Select the type of infrastructure provider:
[ 0] None (Bare metal)
[ 1] vSphere
[ 2] zVirt
> 0
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 в пользовательской инфраструктуре выберите тип провайдера инфраструктуры None (Bare metal)
.
Информация
Для использования прокси-сервера заполните манифест
в соответствии с разделом документации по настройке прокси-сервера.proxy.yaml
3. Пример файла конфигурации установки
Вы можете кастомизировать файл конфигурации 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)
none: {}
clusterNodes: (5)
master: (6)
- networkSpec:
hostname: "master.nova.internal"
ip: "172.31.101.24"
state: "present"
hostGroup: "control-plane"
infra: (7)
- hostGroup: "infra"
networkSpec:
hostname: "infra.nova.internal"
ip: "172.31.101.25"
state: "present"
worker: (8)
- hostGroup: "worker"
networkSpec:
hostname: "worker.nova.internal"
ip: "172.31.101.26"
state: "present"
clusterConfiguration: (9)
dnsBaseDomain: "apps.cls01.nova.internal"
cniProvider: "cilium"
extraOptions:
ingressTLSConfig:
internalCA: {}
kubePodSubnet: "10.233.64.0/18"
kubeServiceAddresses: "10.233.0.0/18"
kubeNetworkNodePrefix: "24"
k8sAPIAdditionalSANs:
- "api.nova.acme.internal"
1 | Идентификатор клиента, полученный из лицензионной информации. |
2 | Лицензионный ключ для установки кластера. |
3 | Версия платформы Nova Container Platform. |
4 | Блок конфигурации провайдера инфраструктуры. |
5 | Блок конфигурации узлов кластера Kubernetes. |
6 | Список мастер-узлов кластера Nova Container Platform. |
7 | Список инфраструктурных узлов кластера Nova Container Platform. |
8 | Список рабочих узлов кластера Nova Container Platform. |
9 | Блок дополнительных параметров настройки кластера. |
Информация
Для использования собственного центра сертификации для генерации сертификатов заполните конфигурационный манифест nova-deployment-conf.yaml
в соответствии с разделом документации Использование пользовательских сертификатов.
4. Установка кластера в минимальной конфигурации
Для установки кластера в минимальной конфигурации вы подготовили не менее трех узлов:
-
1 мастер-узел кластера
-
1 инфраструктурный узел кластера
-
1 рабочий узла кластера
Добавьте данные узлы в соответствующие списки конфигурационного манифеста nova-deployment-conf.yaml
(master, infra, worker), например:
clusterNodes:
master:
- hostGroup: "control-plane"
networkSpec:
hostname: "master.nova.internal"
ip: "172.31.101.24"
state: "present"
infra:
- hostGroup: "infra"
networkSpec:
hostname: "infra.nova.internal"
ip: "172.31.101.25"
state: "present"
worker:
- hostGroup: "worker"
networkSpec:
hostname: "worker.nova.internal"
ip: "172.31.101.26"
state: "present"
При установке кластера в минимальной конфигурации роль узлов балансировки входящего трафика (Ingress) выполняют рабочие узлы. Это необходимо учесть при настройке внешних балансировщиков, а также при создании DNS-записей. |
5. Установка кластера в высокодоступной конфигурации
Для установки кластера в высокодоступной конфигурации вы подготовили следующие узлы:
-
3 мастер-узла кластера
-
3 инфраструктурных узла кластера
-
2 и более рабочих узла кластера
-
(Опционально) 2 и более узла балансировки входящих запросов
Добавьте необходимые узлы кластера в соответствующие списки файла конфигурации nova-deployment-conf.yaml
(master, infra, worker, ingress), например:
clusterNodes:
master:
- networkSpec:
hostname: "master01.nova.internal"
ip: "172.31.101.24"
state: "present"
hostGroup: "control-plane"
- networkSpec:
hostname: "master02.nova.internal"
ip: "172.31.101.25"
state: "present"
hostGroup: "control-plane"
- networkSpec:
hostname: "master03.nova.internal"
ip: "172.31.101.26"
state: "present"
hostGroup: "control-plane"
infra:
- hostGroup: "infra"
networkSpec:
hostname: "infra01.nova.internal"
ip: "172.31.101.27"
state: "present"
- hostGroup: "infra"
networkSpec:
hostname: "infra02.nova.internal"
ip: "172.31.101.28"
state: "present"
- hostGroup: "infra"
networkSpec:
hostname: "infra03.nova.internal"
ip: "172.31.101.29"
state: "present"
worker:
- hostGroup: "worker"
networkSpec:
ip: "172.31.101.30"
hostname: "worker01.nova.internal"
state: "present"
- hostGroup: "worker"
networkSpec:
hostname: "worker02.nova.internal"
ip: "172.31.101.31"
state: "present"
- hostGroup: "worker"
networkSpec:
hostname: "worker03.nova.internal"
ip: "172.31.101.32"
state: "present"
ingress:
- hostGroup: "ingress"
networkSpec:
hostname: "ingress01.nova.internal"
ip: "172.31.101.33"
state: "present"
- hostGroup: "ingress"
networkSpec:
hostname: "ingress02.nova.internal"
ip: "172.31.101.34"
state: "present"
6. Запуск процесса установки
Необходимые условия
-
У вас есть закрытый ключ SSH на вашем локальном компьютере. Ключ будет использоваться для SSH аутентификации на узлах кластера в случае отладки или восстановления после аварийных ситуаций.
-
Вы подготовили необходимые узлы и пользовательскую инфраструктуру для установки кластера.
-
Вы заполнили шаблон файла конфигурации установки
nova-deployment-conf.yaml
. -
(Опционально) Вы заполнили шаблон файла конфигурации прокси-сервера
proxy.yaml
.
Процедура
-
Запустите процесс установки кластера с помощью команды:
nova-ctl bootstrap --ssh-user <имя_пользователя> --ssh-key <закрытый ключ SSH>
Пример
$ 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
В ходе процедуры |
7. Ожидание процесса установки
Вы можете наблюдать за процессом установки 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
■ 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. Данным сертификатом подписаны все последующие подчиненные центры сертификации. |
Не забудьте сохранить учетные данные в надежном месте и удалить их с локальной машины. |
8. Проверка подключения к кластеру
После установки платформы вы можете выполнить пробное подключение к кластеру 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 NAME STATUS ROLES AGE VERSION master.nova.internal Ready control-plane 12m v1.26.8 worker.nova.internal Ready ingress,worker 12m v1.26.8 infra.nova.internal Ready infra 12m v1.26.8
-
Проверьте версию установленной платформы:
kubectl get clusterversions version
Пример
$ kubectl get clusterversions version NAME VERSION AGE version v4.0.2 12m