Установка mesh с несколькими первичными кластерами и несколькими сетями
Установите Istio в топологии multi-primary multi-network на двух кластерах.
В этой процедуре CLUSTER1 — это кластер East, а CLUSTER2 — кластер West.
Вы можете адаптировать эти инструкции для mesh, охватывающего более двух кластеров.
Топология
Служебные нагрузки приложений по разные стороны границ кластеров взаимодействуют косвенно — через выделенные gateway для трафика east-west. Gateway в каждом кластере должен быть доступен из другого кластера.
Предварительные требования
- Вы установили плагин Alauda Container Platform Networking for Multus во всех кластерах, входящих в mesh, и kube-ovn должен быть версии v4.1.5 или новее.
- У вас есть доступ к двум кластерам с поддержкой внешнего load balancer.
- Вы установили оператор Alauda Service Mesh v2 Operator во всех кластерах, входящих в mesh.
- Вы выполнили Создание сертификатов для multi-cluster mesh.
- Вы выполнили Применение сертификатов к multi-network multi-cluster mesh.
- У вас локально установлен
istioctl, чтобы вы могли использовать его для выполнения этих инструкций.
Содержание
Порядок действийПроверка multi-cluster topologyУдаление multi-cluster topology из среды разработкиПорядок действий
Создайте переменную среды ISTIO_VERSION, определяющую версию Istio для установки
Установите IstioCNI в кластере East
Установите ресурс IstioCNI в кластере East, выполнив следующую команду:
Установите Istio в кластере East
-
Создайте ресурс
Istioв кластере East, выполнив следующую команду: -
Дождитесь, пока control plane вернет условие состояния
Ready, выполнив следующую команду: -
Создайте East-West gateway в кластере East, выполнив следующую команду:
WARNINGДля узлов, работающих под управлением Linux kernel версии ниже 4.11 (например, CentOS 7), перед установкой gateway требуется дополнительная настройка.
Необязательно : Разверните East-West gateway на инфраструктурных узлах (нажмите, чтобы развернуть)
Выполните следующую команду, чтобы изменить deployment gateway:
-
Опубликуйте сервисы через gateway, выполнив следующую команду:
Установите IstioCNI в кластере West
Установите ресурс IstioCNI в кластере West, выполнив следующую команду:
Установите Istio в кластере West
-
Создайте ресурс
Istioв кластере West, выполнив следующую команду: -
Дождитесь, пока control plane вернет условие состояния
Ready, выполнив следующую команду: -
Создайте East-West gateway в кластере West, выполнив следующую команду:
WARNINGДля узлов, работающих под управлением Linux kernel версии ниже 4.11 (например, CentOS 7), перед установкой gateway требуется дополнительная настройка.
Необязательно : Разверните East-West gateway на инфраструктурных узлах (нажмите, чтобы развернуть)
Выполните следующую команду, чтобы изменить deployment gateway:
-
Опубликуйте сервисы через gateway, выполнив следующую команду:
Установите remote secret в кластере East, предоставляющий доступ к API server в кластере West
Установите remote secret в кластере West, предоставляющий доступ к API server в кластере East
Проверка multi-cluster topology
Чтобы убедиться, что ваша multi-cluster topology работает корректно, разверните примеры приложений в двух отдельных кластерах Alauda Container Platform. Цель — создать базовую среду, в которой можно генерировать и наблюдать межкластерный трафик.
Порядок действий
Сначала разверните необходимые примеры приложений в кластере East.
В этом кластере будет размещена версия v1 сервиса helloworld.
-
Создайте выделенное namespace для приложений в кластере
East. -
Включите автоматическую инъекцию Istio sidecar для namespace
sample, применив соответствующую метку. -
Разверните компоненты приложения
helloworld.a. Сначала создайте конечную точку сервиса
helloworld.b. Затем разверните экземпляр
v1приложенияhelloworld. -
Разверните приложение
sleep, которое будет выступать в роли клиента для отправки тестовых запросов. -
Приостановите выполнение, пока deployment
helloworld-v1не станет полностью доступным и готовым. -
Аналогично дождитесь, пока deployment
sleepвернет состояниеReady.
Повторите настройку в кластере West.
В этом кластере будет размещена версия v2 сервиса helloworld.
-
Создайте namespace
sampleв кластереWest. -
Также включите инъекцию Istio sidecar для этого namespace.
-
Разверните компоненты приложения
helloworld.a. Сначала создайте общий конечный пункт сервиса
helloworldв кластереWest.b. Разверните экземпляр
v2приложенияhelloworld. -
Разверните клиентское приложение
sleepв кластереWest. -
Дождитесь, пока deployment
helloworld-v2станет полностью доступным. -
Наконец, убедитесь, что deployment
sleepв кластереWestготов.
Проверка потока трафика между кластерами
После развертывания и запуска приложений в обоих кластерах следующим шагом будет отправка запросов и проверка того, что трафик корректно балансируется по всему service mesh.
-
Из pod внутри кластера
Eastотправьте серию из 10 запросов к сервисуhelloworld.Ожидаемый результат — смешение ответов от
helloworld-v1(East) иhelloworld-v2(West), что подтверждает маршрутизацию запросов service mesh через границы кластеров.Пример вывода
-
Выполните такой же тест из кластера
West.Снова должны наблюдаться ответы и от
v1, и отv2сервиса, что подтверждает корректную работу межкластерного балансирования нагрузки независимо от источника запроса.
Удаление multi-cluster topology из среды разработки
После завершения проверки и экспериментов следует удалить multi-cluster конфигурацию, чтобы очистить среду разработки и освободить ресурсы.
Порядок действий
-
Выполните одну команду, чтобы удалить все компоненты Istio и примеры приложений из кластера
East. -
Выполните соответствующую команду, чтобы выполнить такую же очистку в кластере
West.