K8s istio启用pod无法访问常规服务

问题描述:

我正尝试在AWS上的K8s 1.6群集中使用Istio。K8s istio启用pod无法访问常规服务

我有一个Kafka pod/service运行旧时尚的方式,没有IP的“kafka-zk-broker-kafka.dev”服务,所以kafka-zk-broker-kafka.dev服务(我是在开发名称空间中)解析为我的3个Kafka Pod的内部名称。这很好。

~ # nslookup kafka-zk-broker-kafka.dev 

Name:  kafka-zk-broker-kafka.dev 
Address 1: 10.33.0.11 kafka-zk-kafka-0.kafka-zk-broker-kafka.dev.svc.cluster.local 
Address 2: 10.38.96.16 kafka-zk-kafka-2.kafka-zk-broker-kafka.dev.svc.cluster.local 
Address 3: 10.40.128.13 kafka-zk-kafka-1.kafka-zk-broker-kafka.dev.svc.cluster.local 

我部署了一个卡夫卡生产者应用程序,使用Istio sidecart,因为它也暴露了gRPC端口供内部使用。 部署进行得很顺利,但我的应用程序无法连接到“kafka-broker”服务。 DNS解析是正常的,但我无法使用kafka客户端或telnet访问服务端口(TCP:9092)。

我的理解是,当部署Istio(envoy)sidecart时,POD中的所有内容都将通过Envoy代理... 因此,特使代理不知道如何访问常规服务?

我错过了什么吗?有没有办法将Istio/Envoy与常规K8s服务混合?

你在做什么应该工作,但我认为你正在运行到这个已知的错误:https://github.com/istio/issues/issues/37

+0

我openned问题https://github.com/istio/istio/issues/506已经部分回答:必须进行一些重大改变,以便Istio Pod可以达到非Istio pod ... – Prune