Istio(Envoy proxy sidecar)正在阻止8088端口上的http流量



我的应用程序(App2 Namespace=yarn(:打开了以下端口:8088:31097/TCP、19888:32150/TCP、8042:32604/TCP在没有安装Istio的情况下,(Namespace=yarn(中我的Kubernetes集群中的所有pod都能够在curl端口上连接到该服务http://App2.Yarn.svc.cluster.local:8088/网页成功。

在我启用istio注入并重新部署我的应用程序之后。添加了Sidecar,现在集群中同一namespace=yarn(istio-injected(中的所有其他pod都无法在8088端口执行curl命令。除了添加istio之外,没有做任何其他更改。这是Kubernetes Dashboard中的sidecar配置。你能帮我了解一下发生了什么事吗?

proxy
sidecar
--domain
$(POD_NAMESPACE).svc.cluster.local
--configPath
/etc/istio/proxy
--binaryPath
/usr/local/bin/envoy
--serviceCluster
hadoop.$(POD_NAMESPACE)
--drainDuration
45s
--parentShutdownDuration
1m0s
--discoveryAddress
istio-pilot.istio-system:15010
--zipkinAddress
zipkin.istio-system:9411
--proxyLogLevel=warning
--proxyComponentLogLevel=misc:error
--connectTimeout
10s
--proxyAdminPort
15000
--concurrency
2
--controlPlaneAuthPolicy
NONE
--dnsRefreshRate
300s
--statusPort
15020
--applicationPorts
8088,7077,6066,8080
--trust-domain=cluster.local

(这两个服务(App1和App2(都部署在启用了Istio Injection的同一命名空间中。如果我登录到本应在8088上托管此服务的pod(App2-0(,即使在那里我也无法成功进行curl调用,这对我来说完全是一件奇怪的事。(

这是因为istioservice mesh就是这样工作的。注入了特使代理的每个服务都被添加到service mesh注册表中。在注入istio的命名空间中部署应用程序将受益于自动服务发现。

对于istio注入的服务和未注入的服务之间的连接,我们可以使用ServiceEntry对象告诉istio我们想要连接到该服务。这将把该服务添加到istioservice mesh注册表中。但是,添加了ServiceEntry的服务将无法使用某些特使功能。

有关ServiceEntry的更多信息,请参阅istio文档。

希望能有所帮助。

最新更新