В основном этот блог от portshift ответит на ваш вопрос.
Ответ зависит от того, как строятся ваши кластеры, потому что
Istio предлагает несколько вариантов разверните службу me sh в нескольких кластерах kubernetes, подробнее об этом здесь .
Итак, если у вас есть развертывание Single Me sh
Вы можете развернуть один сервис me sh (плоскость управления) по полностью подключенной мультикластерной сети, и все рабочие нагрузки могут достигать друг друга напрямую без шлюза Istio, независимо от кластер, на котором они работают.
НО
Если у вас есть Multi Me sh Развертывание
При развертывании multi-me sh вы получаете большую степень изоляции и доступности, но это увеличивает сложность настройки. Сетки, которые в противном случае являются независимыми, слабо связаны друг с другом с помощью ServiceEntries, Ingress Gateway и используют общий root CA в качестве основы для безопасной связи. С сетевой точки зрения, единственное требование - чтобы входные шлюзы были доступны друг от друга. Каждый сервис в данном me sh, к которому требуется доступ, сервис в другом me sh требует конфигурации ServiceEntry в удаленном me sh.
В развертывании multi-me sh безопасность может усложняться по мере роста и диверсификации среды. Существуют проблемы безопасности при аутентификации и авторизации сервисов между кластерами. Локальный Mixer (политики служб и телеметрии) необходимо обновить с помощью атрибутов служб в соседних кластерах. В противном случае он не сможет авторизовать эти службы, когда они достигнут своего кластера. Для достижения этого каждый микшер должен знать об идентификаторах рабочей нагрузки и их атрибутах в соседних кластерах. Каждый Цитадель должен быть обновлен сертификатами соседних кластеров, чтобы разрешить соединения mTLS между кластерами.
Федерация гранулярных идентификаторов рабочих нагрузок (сертификаты mTLS) и атрибутов обслуживания через multi-me sh плоскостей управления может быть выполнена следующими способами:
- Kubernetes Ingress: предоставление маршрутов HTTP и HTTPS извне кластера службам внутри кластера. Маршрутизация Traffi c контролируется правилами, определенными для ресурса Ingress. Вход может прекратить SSL / TLS и предложить виртуальный хостинг на основе имени. Тем не менее, ему требуется контроллер входа для выполнения правил входа
- Service-me sh шлюз: Служба Istio me sh предлагает другую модель конфигурации Istio Gateway . Шлюз позволяет применять такие функции Istio, как мониторинг и правила маршрутизации, к трафику c, входящему в кластер. На входе g ateway описан балансировщик нагрузки, работающий на границе me sh, который получает входящие соединения HTTP / TCP. Он настраивает открытые порты, протоколы и т. Д. c. Маршрутизация Traffi c для входного трафика c настраивается вместо этого с использованием правил маршрутизации Istio, точно так же, как для внутренних запросов на обслуживание.
Как вы думаете, mTLS будет работать в этой ситуации?
На основании приведенной выше информации
Если у вас есть Single Me sh Развертывание
Это должно возможно без проблем.
Если у вас есть Multi Me sh Deployment
Это должно работать, но так как вы не хотите использовать istio gateway, тогда единственная опция kubernetes ingress .
Надеюсь, это ответит на ваш вопрос. Дайте мне знать, если у вас есть еще вопросы.