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