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