Вы должны выбрать мультикластерную модель на основе ваших требований, а не наоборот. Согласно документации istio :
Модель общей плоскости управления (для одной сети) является самой простой и используется в основном как единое целое sh, охватывающее несколько кластеров.
Что касается реплицированной модели плоскостей управления, то она в основном используется для восстановления доступности и резервирования, когда у вас есть своего рода реплики вашего кластера и меня sh в нескольких регионах. Таким образом, вы можете добиться одинаковой конфигурации и политики в обоих кластерах. Его также можно использовать расширенным способом, как в здесь .
Istio документация суммирует реплицированную плоскость управления со следующим:
Используя шлюзы Istio, общий root CA и служебные записи, вы можете настроить один сервис Istio me sh для нескольких кластеров Kubernetes. После такой настройки traffi c может быть прозрачно перенаправлен на удаленные кластеры без какого-либо участия приложения. Хотя для этого подхода требуется определенный объем ручной настройки для удаленного доступа к службе, процесс создания записи службы может быть автоматизирован.
Что касается межкластерной связи и mTLS согласно документации :
Для межкластерной связи требуется взаимное соединение TLS между службами. Чтобы включить взаимную связь TLS между кластерами, Citadel каждого кластера будет настроен с промежуточными учетными данными CA, сгенерированными общим root CA. В качестве иллюстрации вы используете образец сертификата root CA, доступный в установке Istio в каталоге samples / certs.
Как работают приложения в другом кластере (cluster.global ) опознан?
По имени host
, что приложения вводятся для обслуживания меня sh реестра. Вы можете использовать ServiceEntry
объекты для настройки глобальной видимости сервисов. Вы можете найти пример здесь .
Одна из multi-me sh функция развертывания :
Ни одна из служб в me sh выставляются по умолчанию, владельцы me sh должны явно указать, какие службы предоставляются.
Весь трафик c проходит через шлюз Я предполагаю, что он никогда не будет читать принципал от исходного абонента, он будет читать принципал из шлюза. Это правильно?
Это зависит от вашей Gateway
конфигурации. У вас может быть Входной шлюз без завершения TLS , который дает шлюзу команду пройти входящий трафик c КАК ЕСТЬ, без завершения TLS. Таким образом, адрес источника будет сохранен.
Можно ли получить реплицированные плоскости управления, но без развертывания шлюзов?
Нет, для многокластерной модели с реплицированными плоскостями управления в каждом кластере все еще имеет Gateways
, которые используются для маршрутизации.
Надеюсь, это поможет.