среда, 16 июня 2021 г.

Нюансы подготовки NSX Advanced Load Balancer для vSphere with Tanzu

Начиная с 7.0 U2, при развертывании инфраструктуры контейнеров Tanzu появилась возможность использовать балансировщик VMware NSX Advanced Load Balancer (он же AVI Vantage). NSX ALB предоставляет множество продвинутых функций по сравнению с HAProxy, включая автоматическое развертывание балансировщиков Service Engine, их настройку и обновление, поддержку работы в HA режиме и Active-Active конфигурации, управление через GUI, CLI, Rest API, ведение детальной статистики подключений и многое другое.

Процесс настройки NSX ALB для работы с Tanzu имеет несколько нюансов, которыми я бы хотел с вами поделиться.

Смена редакции Advanced Load Balancer

NSX Advanced Load Balancer доступен в трех редакциях: Essentials, Basic и Enterprise. Редакция Essentials не требует покупки доп.лицензии и доступна в рамках подписки Tanzu Basic и Tanzu Standard. Сравнение редакций приведено на сайте: https://avinetworks.com/docs/20.1/nsx-license-editions/

При развертывании NSX Advanced Load Balancer автоматически активируется триальная Enterprise версия сроком на 1 месяц.

Если вы не планируете покупать редакцию Basic или Enterprise, то перед развертыванием Tanzu рекомендуется поменять редакцию на AVI Controller, чтобы избежать необходимости перенастраивать уже работающую систему. Сделать это можно из командной строки.

Для этого подключитесь к одному из контроллеров по SSH и войдите в систему под учетной записью admin. С помощью команды shell активируйте командную строку для управления балансировщиком.

Проверьте совместимость текущей конфигурации AVI с редакцией Essentials:

show configuration audit tier essentials

Если конфигурация несовместима, команда выдаст перечень настроек, которые потребуется изменить.

Для смены редакции выполните команды:

configure systemconfiguration

default_license_tier essentials

save

Дополнительная информация приведена в статье: https://avinetworks.com/docs/20.1/nsx-essentials-for-tanzu/

Замена сертификата

Перед развертыванием vSphere with Tanzu потребуется заменить самоподписанный сертификат на AVI Controller'ах.

В версиях AVI 20.1.4 и 20.1.5 есть баг, который не позволяет менять сертификат через GUI после смены редакции на Essentials (или менять редакцию, если вы уже заменили сертификат). Чтобы исправить ситуацию потребуется установить обновление 20.1.5-2p1 или выше.

Если вы установили AVI версии 20.1.5, то все что нужно будет сделать, это загрузить пакет обновления avi_patch-20.1.5-2p1-9017.pkg с сайта AVI. Если у вас установлена более старая версия, то предварительно потребуется обновить AVI до версии 20.1.5 с помощью пакета avi_patch-20.1.5-2p1-9017.pkg.

Установка обновлений выполняется из GUI. Загрузите пакет обновления на контроллер: Administration -> Controller -> Software -> Upload From Computer. Затем выберите и установите обновление Administration -> Controller -> System Update.

После установки обновлений откройте доступа к контроллерам: Administration -> Settings -> Access Settings -> 🖉.

В поле SSL/TLS Certificate удалите сертификаты указанные по умолчанию и в выпадающем списке выберите Create Certificate. Создайте новый сертификат, указав в полях Common Name и Subject Alternate Name (SAN) IP-адрес контроллера или Controller Cluster IP, если вы развернули контроллеры в отказоустойчивой конфигурации. Выберите тип Self Signed - если хотите, чтобы контроллер сам сгенерировал самоподписанный сертификат, либо создайте CSR запрос, если планируете подписать сертификат доверенным УЦ.

Планирование IP адресации при развертывании Tanzu

При развертывании Tanzu используется несколько типов сетей:

  • Management Network сеть, к которой подключаются Supervisor Control Plane VM (должно быть зарезервировано не менее 5 IP адресов, три из которых назначаются трем ВМ, один используется в качестве VIP адреса для взаимодействия с кластером супервизоров, и еще один используется для Rollout обновлений супервизоров). Также к этой сети подключаются management интерфейсы для управления балансировщиками Service Engine. Опционально в этой сети могут размещаться другие серверы и служебные ВМ: vCenter Server, VMKernel интерфейсы ESXi, AVI Controller'ы и пр.
  • Одна или несколько Workload Network сетей, к которым подключаются Supervisor Control Plane VM, а также ВМ с ролями Master и Worker Node кластеров TKG Cluster. 3 IP адреса из Workload сети выделяются Supervisor Control Plane VM плюс по одному адресу для каждого узла Master и Worker Node в TKG Cluster'е.
  • Frontend Network или Data Network сеть, где размещаются VIP для балансируемых сервисов, используемые для подключения к кластерам Kubernetes.

Если вы планируете развернуть стандартную инсталляцию Tanzu в соответствии с официальной документацией VMware, то каждый балансировщик Service Engine будет подключаться к двумя сетям: Management и Frontend.

Настройка диапазона адресов для Management и Frontend сетей, из которых будут выделяться IP адреса для Service Engine и VIP, выполняется на вкладке Infrastructure -> Networks.

Важно, эти диапазоны адресов НЕ должны пересекаться с адресами, выделенными для Supervisor Control Plane VM и TKG Cluster'ов, которые вы указываете в мастере настройки Workload Management.

Выбор Frontend сети AVI контроллером осуществляется с помощью IPAM профиля. Для создания профиля в интерфейсе AVI выберите Templates -> Profiles -> IPAM/DNS Profiles -> CREATE -> IPAM Profile. Задайте произвольные имя профиля, укажите инфраструктуру и сеть, из которой будут автоматически выделяться адреса для VIP.

После создания назначьте IPAM профиль на инфраструктуру vSphere, в которой будут создаваться Service Engine: Infrastructure -> Clouds -> Default-Cloud -> 🖉 -> IPAM Profile.

Также требуется настроить статическую маршрутизацию для Service Engine, чтобы они могли принимать и перенаправлять запросы для балансируемых сервисов при обращении из других подсетей. Сделать это можно из Infrastructure -> Routing -> Static Route -> CREATE. Укажите Default Gateway, который используется во Frontend сети.

После подготовки NSX ALB можно запускать мастер настройки Workload Management.