0

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

在我启用 istio-injection 并重新部署我的应用程序之后。添加了 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 调用成功,这对我来说完全是奇怪的。)

4

1 回答 1

0

发生这种情况是因为这就是 istio 的service mesh工作方式。每个注入 envoy 代理的服务都会添加到service mesh注册表中。在 istio 注入的命名空间中部署应用程序将受益于自动服务发现。

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

有关ServiceEntry. _ _

希望能帮助到你。

于 2020-03-20T12:08:32.353 回答