Не удается подключиться к внешней службе Kafka из Istio Mesh

#kubernetes #apache-kafka #istio

#kubernetes #apache-kafka #istio

Вопрос:

Я не могу подключиться к «внешней» (вне сетки) службе Kafka изнутри сетки. Внутри Istio mesh у меня есть приложение Spring Boot, которое должно подключаться к службе платформы Kafka.

Служба Kafka доступна через DNS-имя (я пробовал, это возможно). Для доступа к службе я создал ServiceEntry со следующей конфигурацией:

 apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: kafka
  namespace: test
spec:
  hosts:
  - kafka-service.foo.baa
  ports:
  - number: 37000
    name: tls-6
    protocol: tls
  - number: 36200
    name: tls-5
    protocol: tls
  - number: 36201
    name: tls-4
    protocol: tls
  - number: 36202
    name: tls-3
    protocol: tls
  - number: 36203
    name: tls-2
    protocol: tls
  - number: 36204
    name: tls-1
    protocol: tls
  resolution: DNS
  location: MESH_EXTERNAL
  

Иногда я получаю соединение, но иногда нет, и я не знаю проблему и почему она иногда работает.

Это какое-то сообщение об ошибке:

 org.apache.kafka.common.config.ConfigException: No resolvable bootstrap urls given in bootstrap.servers
  
 Removing server kafka-service.foo.baa:37000 from bootstrap.servers as DNS resolution failed for kafka-service.foo.baa
  

Я также пытался использовать это изменение traffic.sidecar.istio.io/excludeOutboundPorts: 37000,36200,36201,36202,36203,36204,36205 для обхода трафика, но это тоже не работает.
Обход работает, только если я использую IP-адрес вместо DNS-имени в качестве сервера начальной загрузки.

Пожалуйста, помогите.

Комментарии:

1. Привет, есть ли у вас правило назначения с политикой трафика, подобной этому ?

2. До сих пор я не пробовал это с помощью DestinationService для ServiceEntry. Необходимо ли это для исходящего трафика в целом?