VK Private Cloud logo
Помощь
Обновлена 17 июля 2026 г. в 15:55

Подготовка окружения

Подготовка сетевого ландшафта

Перед установкой Платформы необходимо создать сети с IP-адресами согласно паспорту проекта (таблица1).

Таблица 1 — Требования к сетевому ландшафту

Название

Доступ из корп. сети

Доступ в корп. сеть

MTU

Мин. пропускная способность

Management

Администраторам

DNS, NTP, LDAP/AD, BGP

1500

10 Гбит/с

Private API Loopbacks

Подготовка окружения

Подготовка окружения

1500

10 Гбит/с

Public API Transport (Portal)

Пользователям, Администраторам

Подготовка окружения

1500

10 Гбит/с

Public API Loopbacks

Пользователям, Администраторам

Подготовка окружения

1500

10 Гбит/с

K8s Internal Pods

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

K8s Internal Servicess

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

Cloud External

Пользователям, Администраторам

DNS, NTP, Public API Loopbacks, доверенные внутренние ресурсы. Опционально. Например, прокси-серверы, серверы S3, корпоративные репозитории, API-ресурсы и прочее

1500

10 Гбит/с

Cloud Provider Net X

Пользователям, Администраторам

DNS, NTP, Public API Loopbacks, доверенные внутренние ресурсы. Опционально. Например, прокси-серверы, серверы S3, корпоративные репозитории, API-ресурсы и прочее

1500

10 Гбит/с

Сeph External

Подготовка окружения

Подготовка окружения

9050

10 Гбит/с

Сeph Internal

Подготовка окружения

Подготовка окружения

9050

10 Гбит/с

Cloud External Sprut

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

DNS Internal Sprut

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

DNS External Sprut

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

EPHN Internal Sprut

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

EPHN Exchange Sprut

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

Metadata Internal Sprut

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

Metadata Exchange Sprut

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

Octavia Management

Подготовка окружения

Подготовка окружения

1450

Подготовка окружения

Описание сетей

Management — сеть для внутреннего взаимодействия компонентов Платформы. Подключается на каждом хосте инфраструктуры облака. Используется для работы администраторов и управления через веб-интерфейс и SSH. Служит для подключения к вспомогательным, сетевым сервисам (DNS, NTP, AD/LDAP и прочее), а также как промежуточный узел (next hop) для BGP-анонсов. Конечным пользователям доступ к этой сети не предоставляется.

Private API Loopbacks — сеть для доступа компонентов к API. Указывается три BGP IP. Не маршрутизируется в корпоративную сеть.

Public API Transport — транспортная сеть для Public API Loopbacks. Сеть для взаимодействия проекта Платформы с пользователем. Тут находится точка входа для пользователей (UI и API), через которую он управляет своим проектом. Для организации точки входа пользователей выделяются три BGP IP через сеть Public API Loopbacks.

Public API Loopbacks — сеть для доступа пользователей к Порталу самообслуживания и API. Указывается три BGP IP.

K8s Internal Pods/Services — внутренняя сеть Kubernetes. Используется для назначения сетей для подов и сервисов кластера Kubernetes.

Cloud External — одна или несколько сетей для внешних интерфейсов ВМ (корпоративная сеть). Используется для взаимодействия пользователей со своими ВМ и подобными развёрнутыми ресурсами в Платформе. Также используется для резервного копирования БД в хранилище S3. Для этого обеспечивает доступ до S3 из внешней сети, подключённой к маршрутизатору внутренней сети, где размещён инстанс БД. К сети необходим доступ базовым, корпоративным, сетевым ресурсам (DNS, NTP, прокси-серверы, серверы S3, репозитории и прочее). Конфликтует с сетями Cloud Provider Net X.

Cloud Provider Net X — сети для внешних интерфейсов ВМ (корпоративная сеть) с подключением к определённому проекту Платформы. Используется для взаимодействия пользователей с объектами виртуализации, например ВМ. К сети необходим доступ базовым, корпоративным, сетевым ресурсам (DNS, NTP, прокси-серверы, серверы S3, репозитории и прочее). Конфликтует с сетями Cloud External.

Сeph External — сеть для доступа к данным СХД/Ceph. Высокопроизводительная сеть для взаимодействия серверов Controllers и Compute с серверами Storage — то есть через данную сеть ВМ в Compute получают доступ к виртуальным дискам на Storage. Именно из-за объёма информации данная сеть вынесена в отдельную, в ней добавлена скорость и увеличен MTU.

Сeph Internal — кластерная сеть Ceph. Используется для синхронизации распределенных данных кластера Ceph между собой. Имеет высокие требования к стабильности и времени отклика, поэтому для обеспечения большей надёжности вынесена в отдельную сеть.

Cloud External Sprut — сеть для доступа через FIP для ВМ, располагаемых в SDN Sprut. Маршрутизация подсети в корпоративную сеть не требуется, но она не должна конфликтовать с другими подсетями в корпоративной сети.

DNS Internal Sprut — сеть для работы компонента Power DNS в SDN Sprut. Не машрутизируется и не конфликтует с корпоративной сетью.

DNS External Sprut — сеть для публикации ресурсов Power DNS во внешнюю сеть. Маршрутизация подсети в корпоративную сеть не требуется, но она не должна конфликтовать с другими подсетями в корпоративной сети.

EPHN Internal Sprut — сеть для работы компонента Ephemeral Network в SDN Sprut. Не машрутизируется и не конфликтует с корпоративной сетью.

EPHN Exchange Sprut — сеть для публикации ресурсов Ephemeral Network во внешнюю сеть. Маршрутизация подсети в корпоративную сеть не требуется, но она не должна конфликтовать с другими подсетями в корпоративной сети.

Metadata Internal Sprut — сеть для работы компонента Dynamic DHCP в SDN Sprut. Не машрутизируется и не конфликтует с корпоративной сетью.

Metadata Exchange Sprut — сеть для публикации ресурсов Dynamic DHCP во внешнюю сеть. Маршрутизация подсети в корпоративную сеть не требуется, но она не должна конфликтовать с другими подсетями в корпоративной сети.

Octavia Management — сеть для конфигурирования балансировщиков нагрузки Octavia. Маршрутизация подсети в корпоративную сеть не требуется, но она не должна конфликтовать с другими подсетями в корпоративной сети.

Сетевая составляющая каждой роли

  • Deploy:

    • Management.
  • Controlplane:

    • Management.
    • Management (дополнительная).
    • Private API Loopbacks.
    • Public API Transport (Portal).
    • Public API Loopbacks.
    • Kubernetes Internal Pods.
    • Kubernetes Internal Services.
    • Cloud External.
    • Cloud Provider Net X.
    • Cloud External Sprut.
    • DNS Internal Sprut.
    • DNS External Sprut.
    • EPHN Internal Sprut.
    • EPHN Exchange Sprut.
    • Metadata Internal Sprut.
    • Metadata Exchange Sprut.
    • Octavia Management.
    • Ceph External.
  • Network:

    • Management.
    • Cloud External.
  • Compute:

    • Management.
    • Cloud External.
    • Ceph External.
  • Compute High IOPS:

    • Management.
    • Cloud External.
    • Ceph External.
  • Ceph:

    • Management.
    • Ceph External.
    • Ceph Internal.
  • Route Server (RS):

    • Management.
  • Logging/Monitoring:

    • Management.

Сетевые доступы

Обеспечьте доступ из сети Management до следующих сервисов:

  • DNS.
  • AD/LDAP.
  • NTP.
  • SMTP.

Обеспечьте доступ из сети Cloud External в сеть Public API Loopbacks по следующим портам:

  • 80.
  • 443.
  • 5010.

Для использования корпоративного BGP-оборудования откройте порт 179/TCP от серверов Controller до BGP-коммутаторов и обратно через сеть Management.

Подготовка оборудования

Выполните подготовку оборудования согласно требованиям, описанным в таблице 2.

Таблица 2 — Минимальные требования к оборудованию

Серверная роль

Физический сервер/ВМ

Кол-во серверов

RAM (ГБ)

CPU (кол-во/модель/частота/кол-во ядер)

Storage (кол-во/тип/размер)

Сетевые интерфейсы (кол-во/протокол/скорость)

Deploy

Физический или ВМ

1

8

1×Xeon Gold

2×480ГБ SSD + 2×1ТБ SSD

2×10Гб/с LACP

Controller node

Физический

3

128

2×Xeon Gold

2×480ГБ SSD

4×10Гб/с LACP

Network

Физический

1

32

1×Xeon Gold

2×480ГБ SSD

2×10Гб/с LACP

Compute node

Физический

1

1024

2×Xeon Gold

2×480ГБ SSD

4×10Гб/с LACP

Ceph

Физический

3

128

2×Xeon Silver

2×480ГБ SSD + 2×960ГБ SSD

4×10Гб/с LACP

Route Server (RS)

Физический или ВМ

1

8

1×Xeon Silver

2×480ГБ SSD

2×10Гб/с LACP

Monitoring-Logging

Физический или ВМ

1

128

2×Xeon Gold

2×480ГБ SSD + 2×1ТБ SSD

2×10Гб/с LACP

Compute node High IOPS

Физический

1

128

2×Xeon Gold

2×480ГБ SSD + 2×Single 960GB NVME

6×10Гб/с LACP

EventHouse

Физический

0

64

2×Xeon Gold

2×480ГБ SSD + 2×960ГБ SSD

2×10Гб/с LACP

Установка и настройка ОС

Установите РЕД ОС 7.3 на все хосты через IPMI или PXE и настройте сетевые интерфейсы, исходя из списка раздела Сетевая составляющая каждой роли. На каждом хосте должен быть только один основной шлюз из сети Management (кроме хостов Controlplane, в которых основной шлюз из сети Public API Transport (Portal)).

Имена хостов

Имена хостов, на которых производится установка, будут использоваться в качестве DNS-имён этих хостов. Имена должны соответствовать следующим требованиям:

  • Содержат не более 63-х символов.
  • Содержат только строчные буквы, цифры, - и ..
  • Начинаются с буквы или цифры.
  • Заканчиваются буквой или цифрой.
Пример на первом узле Controlplane
$ hostnamecpn001.private.infra.devmail.ru$ nslookup cpn001Server:  127.0.0.53Address: 127.0.0.53#53Name: cpn001.private.infra.devmail.ruAddress: 10.30.3.11$ nslookup cpn001.private.infra.devmail.ruServer:  127.0.0.53Address: 127.0.0.53#53Name: cpn001.private.infra.devmail.ruAddress: 10.30.3.11

Настройка сети

Сеть настраивается средствами пакета network-scripts для ОС Linux согласно Паспорту проекта.

Рекомендации по разбивке дисков

Необходимо обеспечить отказоустойчивость диска с ОС при помощи RAID1 или LVM-mirror учитывая следующие рекомендации:

  • На диске создается 1 раздел с максимально доступным объёмом, монтируется в /.
  • Swap отключён.

Отключение SELinux

Отключите SELinux на всех серверах:

  1. Откройте файл конфигурации SELinux для редактирования и задайте параметру SELINUX значение disabled:

    $ sudo vi /etc/selinux/config...SELINUX=disabled...
  2. Перезапустите ОС командой sudo reboot и дождитесь загрузки ОС для продолжения установки.

Отключение firewalld

Отключите firewalld, так как он приводит к конфликтам с iptables.

Перед отключением, остановите firewalld:

$ sudo systemctl disable --now firewalld

Создание учётной записи

На всех узлах Платформы выполните следующие действия (на примере пользователя redos):

  1. Создайте нового пользователя:

    $ sudo useradd redos -c "Ansible User" --create-home
  2. Задайте сложный пароль:

    $ sudo passwd redos
  3. Настройте возможность выполнения команд через sudo без пароля:

    $ sudo bash -c 'echo "redos ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/91-redos-user'$ sudo chmod 400 /etc/sudoers.d/91-redos-user

Настройка доступа по SSH

  1. Настройте беспарольный доступ для выбранного пользователя с помощью SSH-ключа с деплой-ноды на все серверы Платформы:

    $ sudo -u redos bash$ cd ~$ mkdir ~/.ssh$ ssh-keygen -t rsa -q -N ""$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys$ vi ~/.ssh/configHost *  User redos  StrictHostKeyChecking=no  UserKnownHostsFile=/dev/null  LogLevel=error$ chmod 600 ~/.ssh/config$ ssh-copy-id cpn001$ ssh-copy-id cpn002$ ssh-copy-id ...
  2. Проверьте правильность настройки: с деплой-ноды запросите ID пользователя каждого сервера. Ожидаемый ответ от каждого сервера: uid=0(root) gid=0(root) groups=0(root):

    $ ssh network1 sudo iduid=0(root) gid=0(root) groups=0(root)$ ssh cpn001 sudo iduid=0(root) gid=0(root) groups=0(root)$ ssh cpn002 sudo iduid=0(root) gid=0(root) groups=0(root)...

Региональные настройки

Проверьте региональные настройки на деплой-ноде:

$ echo $LANGen_US.UTF-8

Если ответ отличается от en_US.UTF-8, измените их на необходимые:

$ echo $LANGru_RU.utf-8$ export LANG=en_US.utf-8
Пример наследования региональных настроек
[admin]$ echo $LANGen_US.utf-8[admin]$ ssh redos@deploy001[redos@deploy001 ~]$ echo $LANGen_US.utf-8[redos@deploy001 ~]$ ls 1ls: cannot access '1': No such file or directory[redos@deploy001 ~]$ exit[admin]$ export LANG=ru_RU.utf-8[admin]$ echo $LANGru_RU.utf-8[admin]$ ssh redos@deploy001[redos@deploy001 ~]$ echo $LANGru_RU.utf-8[redos@deploy001 ~]$ ls 1ls: невозможно получить доступ к '1': No such file or directory[redos@deploy001 ~]$ exit

Установка бэкенда для сервиса Glance

В качестве хранилища образов ВМ для сервиса Glance могут использоваться:

Ceph

В файле minimal.yml указано значение переменной glance_type_store — тип хранилища rbd.

Пример фрагмента файла `minimal.yml`
vars:...glance_type_store: rbd...

MINIO

В файле minimal.yml укажите значение переменной glance_type_store — тип хранилища s3.

Пример фрагмента файла `minimal.yml`
vars:...glance_type_store: s3...

Cloud Storage от VK или сторонний S3

Выполните подготовительные действия:

  1. Создайте бакеты для постоянных и временных образов с правами на чтение и запись.

  2. Получите ключи доступа пользователя к бакетам Access key и Secret key.

В файле minimal.yml укажите значения переменных:

  • glance_type_store — тип хранилища s3.
  • glance_s3_bucket_name — имя бакета для образов Glance.
  • glance_s3fs_bucket — имя бакета для временных образов Glance.
  • glance_s3_key_access — Access key для доступа к S3 основного бакета хранения образов.
  • glance_s3_key_secret — Secret key для доступа к S3 основного бакета хранения образов.
  • glance_s3_tmp_key_access — Access key для доступа к S3 временного бакета хранения образов.
  • glance_s3_tmp_key_secret — Secret key для доступа к S3 временного бакета хранения образов.
Пример фрагмента файла `minimal.yml`
vars:...glance_type_store: s3glance_s3_bucket_name: glanceglance_s3fs_bucket: glance-tmp...vault:...glance_s3_key_access: "<KEY_ACCESS>"glance_s3_key_secret: "<KEY_SECRET>"glance_s3_tmp_key_access: "<TMP_KEY_ACCESS>"glance_s3_tmp_key_secret: "<TMP_KEY_SECRET>"...

Рекомендации для автоматической установки ОС

Для автоматической установки ОС можете использовать следующую конфигурацию Kickstart.

Пример конфигурации для автоматической установки ОС
installurl --url=http://your_provision_server/cblr/links/redos-MUROM-7.3-20230724.0/lang en_US.UTF-8keyboard ustimezone --utc Europe/Moscoweula --agreedskipxtextrebootrootpw <YOUR_ROOT_PASSWORD>firewall --disabledselinux --disabledauthconfig --enableshadow --passalgo=sha512 --enableldap --enableldapauth --enableldaptls --enablecache --kickstartnetwork --hostname=<CHANGEME>.private.infra.devmail.rubootloader --location=mbrzerombrclearpart --all --initlabelbootloader --location=mbr --driveorder=sda --append="crashkernel=auto panic=10 ixgbe.allow_unsupported_sfp=1 net.ifnames=0 selinux=0 LANG=en_US.UTF-8 processor.max_cstate=0 intel_idle.max_cstate=0 idle=poll"#Disk partitioning informationignoredisk --only-use=sdapart /boot --asprimary --fstype ext4 --size=2048part swap  --asprimary --size=8192part /     --asprimary --fstype ext4 --size=1 --grow%packages# ==== OsProfile "vkpc_redos" packages section@core-ntpchronytcpdumpnmapvim-commonvim-minimalvim-enhancedbind-utilsrsyncwgetdmidecodeNetworkManagergrub2-redos-themedhcp-clientmicrocode_ctl%end%pre# Setting system state to "INSTALLING"wget -O/dev/null --header='Content-Type: application/json' --post-data='{ "state" : "installing" }' http://<IP>/api/v1/discover/kcn002.private.infra.devmail.ru/state || truecurl -so /dev/null -X POST -H 'Content-Type: application/json' -d '{ "state" : "installing" }' http://<IP>/api/v1/discover/kcn002.private.infra.devmail.ru/state || true# Reducing RAID disk loadsysctl -w dev.raid.speed_limit_max=1000%end# ==== OsProfile "vkpc_redos" pre section%pre/sbin/wipefs -af /dev/sd*%end# ==== OsProfile "vkpc_redos" post section%postsed -i -e 's/\(^SELINUX=\).*$/\1disabled/' /etc/selinux/configuseradd -m <USERNAME>echo "<USERNAME> ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/99-<USERNAME>-usermkdir -p /home/<USERNAME>/.sshecho 'ssh-rsa AAAAB3N4n2dZ5fZZooIXo...rRXu2SAUK5t' >> /home/<USERNAME>/.ssh/authorized_keysecho 'ssh-rsa AAAAB3NzaC1yc2EAAAADA...r9DiHmRrn0=' >> /home/<USERNAME>//.ssh/authorized_keyschown -R <USERNAME>. /home/<USERNAME>chmod 600 /home/<USERNAME>/.ssh/authorized_keyssystemctl enable NetworkManagersystemctl disable systemd-fsck-root.service%end

Предстартовая проверка

Для предстартовой проверки:

  1. Проверьте состояние инсталляции:

    • На всех хостах платформы развёрнута ОС с корректно настроенным сетевым доступом:

      • Между хостами.
      • До DNS-серверов.
      • До NTP-серверов.
      • До AD/LDAP-серверов.
      • До SMTP-серверов.
    • Отсутствуют неисправности в оборудовании.

  2. Выполните все пункты из чек-листа, приведённого в таблице 3.

  3. Если какая-либо проверка не будет успешной, исправьте все возникшие ошибки перед продолжением установки Платформы. В противном случае правильная работа инсталлятора и/или Платформы не гарантируется.

Таблица 3 — Чек-лист предстартовой проверки

Требование

№ пункта Техпаспорта

Статус

Комментарий

Проверяющая сторона

Проверку выполнил

Действия для проверки

1

Беспарольный SSH-доступ от деплой-ноды до всех серверов в Management сети предоставлен и протестирован

В случае отсутствия SSH-доступа до любого из серверов Платформы установка завершится с ошибкой

Исполнитель

2

Сетевая связность в сетях Сeph External от Compute-серверов до Ceph-узлов предоставлена и протестирована

Исполнитель

3

Сетевая связность между всеми серверами по сети Management предоставлена и протестирована

Исполнитель

4

Сетевая связность от всех серверов до DNS-сервера через сеть Management предоставлена и протестирована

Исполнитель

5

Сетевая связность от Compute-серверов до DNS-сервера через сеть Cloud External предоставлена и протестирована

Исполнитель

6

Сетевая связность от всех серверов до NTP-сервера через сети Management предоставлена и протестирована

Исполнитель

7

Сетевая связность от Compute-серверов до NTP-сервера через сети Cloud External предоставлена и протестирована

Исполнитель

8

Доменные имена занесены в DNS-записи и протестированы

2.5b

Исполнитель

9

SSL сертификаты, RSA ключи и, опционально, CA получены

3.1

Исполнитель

10

Скорость передачи данных между серверами протестирована и соответствует пропускной способности сети

Проверка с помощью утилиты iperf

Исполнитель

11

MTU в различных сетях настроен корректно

Проверка с помощью команды:

$ ping -M do -s <MTU> -c1 <IP>

Исполнитель

12

На дисках серверов отсутствуют ошибки

Исполнитель

13

Доступ серверов к хранилищу S3 (при наличии) предоставлен и протестирован

Исполнитель

14

В чистой установке ОС нет ошибок сервисов, или они не влияют на установку и работу Платформы

Проверка с помощью команды:

$ systemctl list-units --failed

Исполнитель