Список необходимых ресурсов VCD

  • Organization
  • VirtualDataCenter
  • vApp
  • StoragePolicy
  • SizingPolicy
  • Network
  • EdgeRouter
  • Catalog

Ресурсы Organization, VirtualDataCenter, StoragePolicy, SizingPolicy, EdgeRouter и Catalog должны быть предоставлены вашим поставщиком услуг VMware Cloud Director.

Network (внутренняя сеть) может быть настроена вашим поставщиком услуг VMware Cloud Director, либо вы можете настроить ее самостоятельно. Далее рассматривается настройка внутренней сети самостоятельно.

Права пользователя

Пользователь, под которым будет осуществляться доступ к API VMware Cloud Director, должен иметь следующие права:

  • роль Organization Administrator с дополнительным правилом Preserve All ExtraConfig Elements During OVF Import and Export;
  • правило Preserve All ExtraConfig Elements During OVF Import and Export должно быть продублировано в используемом Right Bundle пользователя.

Добавление сети

  1. Перейдите на вкладку Networking и нажмите NEW:

    Добавление сети, шаг 1

  2. Выберите необходимый Data Center:

    Добавление сети, шаг 2

  3. На этапе Network type выберите Routed:

    Добавление сети, шаг 3

  4. Присоедините EdgeRouter к сети:

    Добавление сети, шаг 4

  5. Укажите имя сети и CIDR:

    Добавление сети, шаг 5

  6. Не добавляйте Static IP Pools, поскольку будет использоваться DHCP:

    Добавление сети, шаг 6

  7. Укажите адреса DNS-серверов:

    Добавление сети, шаг 7

Настройка DHCP

Для динамического заказа узлов включите DHCP-сервер для внутренней сети.

Рекомендуем выделить начало диапазона адресов сети на системные нагрузки (control plane, frontend-узлы, системные узлы), а остальное выделить на DHCP-пул. Например, для сети по маске /24 будет достаточно выделения 20 адресов под системные нагрузки.

  1. Перейдите на вкладку Networking и откройте созданную сеть:

    DHCP, шаг 1

  2. В открывшемся окне выберите пункт IP Management -> DHCP -> Activate:

    DHCP, шаг 2

  3. На вкладке General settings настройте параметры аналогично примеру:

    DHCP, шаг 3

  4. Добавьте пул:

    DHCP, шаг 3

  5. Укажите адреса DNS-серверов:

    DHCP, шаг 3

Добавление vApp

  1. Перейдите на вкладку Data Centers -> vApps -> NEW -> New vApp:

    Добавление vApp, шаг 1

  2. Укажите имя и включите vApp:

    Добавление vApp, шаг 2

Добавление сети к vApp

После создания vApp присоедините к ней созданную внутреннюю сеть.

  1. Перейдите на вкладку Data Centers -> vApps и откройте необходимый vApp:

    Добавление сети к vApp, шаг 1

  2. Перейдите на вкладку Networks и нажмите NEW:

    Добавление сети к vApp, шаг 2

  3. В появившемся окне выберите тип Direct и выберите сеть:

    Добавление сети к vApp, шаг 3

Входящий трафик

Входящий трафик необходимо направить на edge router (порты 80, 443) при помощи правил DNAT на выделенный адрес во внутренней сети. Этот адрес поднимается при помощи MetalLB в L2-режиме на выделенных frontend-узлах.

Настройка правил DNAT/SNAT на edge gateway

  1. Перейдите на вкладку Networking -> Edge Gateways, откройте edge gateway:

    Настройка правил DNAT на edge gateway, шаг 1

  2. Перейдите на вкладку Services -> NAT:

    Настройка правил DNAT на edge gateway, шаг 2

  3. Добавьте следующие правила:

    Настройка правил DNAT на edge gateway, шаг 3

    Первые два правила используются для входящего трафика, а третье — для доступа по SSH к узлу с control plane (без этого правила установка будет невозможна).

  4. Чтобы виртуальные машины могли выходить в интернет, настройте правила SNAT, следуя примеру:

    Настройка правил SNAT на edge gateway, шаг 1

    Данное правило позволит виртуальным машинам из подсети 192.168.199.0/24 выходить в интернет.

Настройка firewall

После настройки DNAT настройте firewall. Сначала необходимо настроить наборы IP-адресов (IP sets).

  1. Перейдите на вкладку Security -> IP Sets:

    Настройка firewall на edge gateway, шаг 1

  2. Создайте следующий набор IP (подразумевается, что адрес MetalLB будет .10 а адрес узла с control plane — .2):

    Настройка firewall на edge gateway, шаг 1

    Настройка firewall на edge gateway, шаг 1

    Настройка firewall на edge gateway, шаг 1

  3. Добавьте следующие правила firewall:

    Настройка firewall на edge gateway, шаг 1

Шаблон виртуальной машины

Работоспособность провайдера подтверждена только для шаблонов виртуальных машин на базе Ubuntu 22.04.

На виртуальных машинах должен быть установлен пакет cloud-init. После запуска виртуальной машины должны быть запущены следующие службы, связанные с этим пакетом:

  • cloud-config.service;
  • cloud-final.service;
  • cloud-init.service.

В примере используется OVA-файл, предоставляемый Ubuntu, с двумя исправлениями. Исправления необходимы для корректного заказа CloudPermanent-узлов и для возможности подключать диски, созданные CSI.

Подготовка шаблона из OVA-файла

  1. Скачайте OVA-файл:

    Настройка шаблона, шаг 1

  2. Перейдите на вкладку Libraries -> Catalogs -> Каталог организации:

    Настройка шаблона, шаг 2

  3. Выберите скачанный шаблон и загрузите его в каталог:

    Настройка шаблона, шаг 3

    Настройка шаблона, шаг 4

    Настройка шаблона, шаг 5

  4. Создайте виртуальную машину из шаблона:

    Настройка шаблона, шаг 6

    Настройка шаблона, шаг 7

Укажите пароль по умолчанию и публичный ключ. Они понадобятся, чтобы войти в консоль виртуальной машины.

Настройка шаблона, шаг 8

Для подключения к виртуальной машине выполните следующие шаги:

  1. Запустите виртуальную машину.
  2. Дождитесь получение IP-адреса.
  3. Пробросьте порт 22 до виртуальной машины:

    Настройка шаблона, шаг 9

Войдите на виртуальную машину по SSH и выполните следующие команды:

rm /etc/netplan/99-netcfg-vmware.yaml
echo -e '\n[deployPkg]\nwait-cloudinit-timeout=1800\n' >> /etc/vmware-tools/tools.conf
echo 'disable_vmware_customization: true' > /etc/cloud/cloud.cfg.d/91_vmware_cust.cfg
dpkg-reconfigure cloud-init

В появившемся диалоговом окне оставьте галочку только у OVF: Reads data from OVF transports. Остальные пункты отключите:

Настройка шаблона, OVF

Выполните оставшиеся команды:

truncate -s 0 /etc/machine-id
rm /var/lib/dbus/machine-id
ln -s /etc/machine-id /var/lib/dbus/machine-id
cloud-init clean --logs --seed
passwd -d ubuntu
passwd -d root
rm /home/ubuntu/.ssh/authorized_keys
history -c

shutdown -P now

Настройка шаблона в VCD

  1. Выключите виртуальную машину и удалите все заполненные поля Guest Properties:

    Настройка шаблона, Guest Properties 1

    Настройка шаблона, Guest Properties 5

  2. Cоздайте шаблон виртуальной машины:

    Настройка шаблона, шаг 10

    Настройка шаблона, шаг 11

  3. В созданном шаблоне перейдите на вкладку Metadata и добавьте шесть полей:

    • guestinfo.metadata;
    • guestinfo.metadata.encoding;
    • guestinfo.userdata;
    • guestinfo.userdata.encoding;
    • disk.enableUUID;
    • guestinfo.hostname.

    Настройка шаблона, Guest Properties 2

    Настройка шаблона, Guest Properties 3

  4. В панели управления vCenter для шаблона включите параметр disk.EnableUUID:

    Настройка шаблона, vCenter 1

    Настройка шаблона, vCenter 2

    Настройка шаблона, vCenter 3

    Настройка шаблона, vCenter 4

    Настройка шаблона, vCenter 5

Использование хранилища

  • VCD поддерживает CSI. Диски создаются как VCD Independent Disks.
  • Guest property disk.EnableUUID должно быть разрешено для используемых шаблонов виртуальных машин.
  • Deckhouse Kubernetes Platform поддерживает изменение размера дисков с версии v1.59.1.