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