#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. Необходимо ли это для исходящего трафика в целом?