Предусловия
Перед запуском инсталлятора убедитесь, что выполнены условия из разделов ниже.
-
Развернут инсталляционный сервер на РЕД ОС версии 7.3с.
- Конфигурация: 4 CPU, 8 ГБ RAM.
- Свободное место: 450 гибибайт.
-
Развернут и настроен кластер Kubernetes на виртуальных машинах внутри VK Private Cloud. Для повышения отказоустойчивости кластер развернут в мультизональной конфигурации. Для развертывания кластера Kubernetes использовался дистрибутив Base Infra. Подробнее — в разделе Развертывание кластера Kubernetes из дистрибутива Base Infra.
- Управляющий слой (control plane) состоит из трех узлов.
- Минимальный размер одного узла кластера Kubernetes — 32 CPU, 64 ГБ ОЗУ.
- На узлах подключены 2 диска: основной объемом не менее 250 гибибайт и дополнительный неразмеченный диск объемом не менее 200 гибибайт, используемый для создания группы томов LVM.
- Подготовлен список IP-адресов узлов кластера Kubernetes.
-
Если работы выполняются на стендах CorpCloud, необходимо удалить суффикс
novalocalв имени сервера и из файла/etc/resolv.conf. -
Создан бакет для резервных копий управляющего узла. Бакет должен быть пустым.
-
На приватном стенде создан балансировщик нагрузки с внешним адресом, который перенаправляет трафик на узлы кластера Kubernetes на порт
31111. Запишите внешний IP-адрес балансировщика — он потребуется при настройке переменных окружения. -
На инсталляционном сервере настроено прямое и обратное разрешение DNS-имен (FQDN) всех узлов кластера Kubernetes.
-
Созданы DNS-записи для Nexus внутри VK Private Cloud:
dp-repo.<ДОМЕН>— веб-интерфейс Nexus;dp-repo-cp.<ДОМЕН>— реестр Docker с образами компонентов управляющего узла;dp-repo-dp.<ДОМЕН>— реестр Docker с образами компонентов слоя данных (data plane).
Здесь
<ДОМЕН>— доменное имя заказчика VK Data Platform.Домены должны указывать на IP-адрес деплой-ноды внутри VK Private Cloud.
-
Со всех узлов кластера Kubernetes настроено разрешение DNS-имен, созданных для Nexus, из предыдущего пункта.
-
Создана DNS-запись для модуля мультиплексора (MVM) VK Data Platform:
data-multiplexer-api.<ДОМЕН>.Здесь
<ДОМЕН>указывает на плавающий IP-адрес (VIP) HAProxy на управляющем узле.Дополнительные требования:
-
Если HAProxy настроен с ACL по доменному имени, DNS-запись должна использовать тот же домен, что и ACL.
-
Если HAProxy имеет несколько VIP (HA-конфигурация), DNS-запись может указывать на любой из них.
-
(Опционально) Для распределения нагрузки между VIP настройте DNS в режиме round-robin.
-
Плавающий IP-адрес HAProxy должен быть доступен из подов Kubernetes по TCP 443. Проверьте доступность с любого узла кластера:
$ timeout 5 bash -c "echo > /dev/tcp/<VIP>/443" && echo OPEN || echo TIMEOUTЗдесь
<VIP>— плавающий IP-адрес HAProxy. -
Домен
data-multiplexer-apiиспользуется в нескольких местах при установке VK Data Platform. Для корректной работы MVM значения в этих местах должны соответствовать друг другу:helm_data_multiplexer_domain— домен для HAProxy ACL. Заполняется в конфигурации переменных окружения.helm_data_platformer_multiplexer_grpc_host— домен, которыйdata-platformerиспользует для подключения. Заполняется во время настройки Data Platformer.internal_netsвhelm_data_platformer_extensions_global_network_policy— IP-адреса, на которые указывает DNS-запись. Заполняется во время настройки Data Platformer.
Несоответствие любого из этих значений приведет к ошибке
i/o timeoutв подахdata-platformer.
-
-
Создана DNS-запись для репозитория VK Data Platform:
dp-repo.<АДРЕС_ЛК>.Здесь
<АДРЕС_ЛК>— адрес Личного кабинета VK Data Platform. -
Получены эндпоинты сервисов у администратора VK Private Cloud:
laas_public_endpoint_domain— эндпоинт LogaaS VK Private Cloud (Cloud Logging);maas_public_endpoint_domain— эндпоинт MonaaS VK Private Cloud (Cloud Monitoring);openstack_public_url— URL-адрес OpenStack VK Private Cloud.
-
Разрешено прохождение трафика для плавающих адресов через сетевой интерфейс сервера и на сетевом оборудовании (коммутаторе или роутере), даже если эти IP-адреса не назначены интерфейсу статически.
-
На инсталляционном сервере добавлены порты
443,8081,8082,5553,5554,6664в список разрешенных портов в файерволе. Доступ разрешен с узлов Kubernetes внутри VK Private Cloud. В случае работы в CorpCloud — демон firewalld на всех узлах остановлен, разрешенные в CorpCloud порты добавлены. -
На узлах Kubernetes внутри VK Private Cloud добавлены порты
30080и30443в список разрешенных портов в файерволе. В случае работы в VK Private Cloud — демон firewalld на всех узлах остановлен, разрешенные в VK Private Cloud порты добавлены. -
Порты с IP-адресами
198.18.18.32и198.18.18.33для Route Reflector свободны. Для проверки подключитесь к управляющему узлу и выполните:$ ssh <ЛОГИН>@<IP_ДЕПЛОЙ_НОДЫ>$ ssh <УЗЕЛ>$ sudo su# source /root/openrc.sh# openstack port list --fixed-ip ip-address=198.18.18.32# openstack port list --fixed-ip ip-address=198.18.18.33Здесь:
<ЛОГИН>— логин пользователя Linux на деплой-ноде. Пример:deployer.<IP_ДЕПЛОЙ_НОДЫ>— внешний IP-адрес деплой-ноды. Пример:100.70.18.42.<УЗЕЛ>— имя управляющего узла. Пример:dc2cpn001.
Если порты заняты (например при переустановке), удалите виртуальные машины и порты:
-
Получите идентификаторы виртуальных машин:
# openstack server list --project <ID_ПРОЕКТА>Здесь
<ID_ПРОЕКТА>— идентификатор проекта OpenStack, в котором развернут кластер Kubernetes. -
Удалите виртуальные машины:
# openstack server delete <ID_ВМ_1> <ID_ВМ_2>Здесь
<ID_ВМ_1>,<ID_ВМ_2>— идентификаторы виртуальных машин Route Reflector. -
Получите идентификаторы портов и удалите их:
# openstack port list --fixed-ip ip-address=198.18.18.32# openstack port list --fixed-ip ip-address=198.18.18.33# openstack port delete <ID_ПОРТА_1> <ID_ПОРТА_2>Здесь
<ID_ПОРТА_1>,<ID_ПОРТА_2>— идентификаторы портов с адресами198.18.18.32и198.18.18.33соответственно.
Убедитесь, что есть валидные TLS-сертификаты в формате PEM (RFC 7468) для домена репозитория VK Data Platform (dp-repo.<АДРЕС_ЛК>) и для Nexus.
Здесь <АДРЕС_ЛК> — адрес Личного кабинета VK Data Platform.
-
На инсталляционном сервере установлены утилиты:
tar,sed,jq,tr,curl,pythonверсии 3.8;kubectl— в директории/usr/local/bin;helmверсии 3 — в директории/usr/bin.
-
На первом узле кластера Kubernetes установлена утилита
helmверсии 3. -
На всех узлах кластера Kubernetes установлена утилита
lvm2.
-
На инсталляционный сервер VK Private Cloud загружены артефакты дистрибутива Base Infra:
- артефакт дистрибутива Base Infra —
repos_mcs_distr_55416-baseinfra-26-1.tar.gz; - артефакт хранилища Nexus —
nexus-55416-baseinfra-26-1.tar.
Общий размер архивов — около 30 гибибайт.
Получен файл
calico-crds.yamlу администратора VK Private Cloud. - артефакт дистрибутива Base Infra —
-
На инсталляционный сервер VK Private Cloud загружены артефакты инсталлятора VK Data Platform:
- артефакт инсталлятора —
data-platform-26.2.1.tar; - артефакт хранилища Nexus —
volume-nexus-26.2.1.tar.gz; - образ виртуальной машины data-multiplexer-vm —
redos.0.0.7.qcow2; - образ виртуальной машины data-route-reflector —
redos.0.0.1.qcow2.
Общий размер архивов — около 70 гибибайт.
- артефакт инсталлятора —
-
На инсталляционный сервер, созданный внутри VK Private Cloud, загружены:
- артефакт инсталлятора —
data-platform-26.2.1.tar; - артефакт хранилища Nexus —
volume-nexus-26.2.1.tar.gz.
Общий размер архивов — около 70 гибибайт.
- артефакт инсталлятора —
- Получен SSH-доступ к инсталляционному серверу.
- С инсталляционного сервера есть доступ по SSH ко всем узлам кластера. Между серверами кластера настроен беспарольный доступ по SSH.
- Для клиентских приложений в Kubernetes по полному доменному имени (FQDN) доступен VK Object Storage (или другое объектное хранилище с S3-совместимым API).
- Конфигурационный файл для доступа к кластеру Kubernetes находится по пути
~/.kube/configна деплой-ноде внутри VK Private Cloud. - Получены данные для подключения к S3-совместимому хранилищу: публичный (Access Key) и приватный (Secret Key) ключи, эндпоинт (с указанием протокола), регион, имя бакета для Nexus.
- Получены учетные данные для доступа к OpenStack: имя пользователя, пароль, Auth URL, идентификатор проекта, домен пользователя.