У меня кластер k8s с Istio v1.6.4. Внедрение sidecar отключено по умолчанию. У меня есть кластер Kafka, работающий на этом k8s, установленном с оператором strimzi kafka. Кластер Kafka работает без проблем, когда в kafka, как и в клиентские модули, не внедрен Istio-proxy. Моя проблема: когда я создаю модуль с внедренным клиентом kafka и Istio-proxy, я не могу подключиться к кластеру Kafka. Журналы на стороне клиента:
java.io.IOException: Connection reset by peer
и на стороне сервера: org.apache.kafka.common.network.InvalidReceiveException: Invalid receive (size = 369295616 larger than 104857600)
После некоторого поиска в Google и проверки журналов Istio-proxy выясняется, что проблема в том, что Istio-proxy подключается к конечной точке открытого текста kafka с помощью TLS. Я могу обойти это, установив для PeerAuthentication по умолчанию mtls.mode: DISABLED
, но я не хочу устанавливать для него глобальные настройки.
Что странно, если я создаю простую службу k8s и запускаю «сервер» netcat на pod под управлением kafka server и netcat "client" на pod под управлением kafka client - все работает нормально. Кластер Kafka, чем другие TCP-соединения (например, с использованием n c)?
Как отключить mtls только для одного хоста? Я играл с PeerAuthentication, но не повезло ...