从网格外部的服务访问启用 Istio 的 K8S pod
Accessing Istio enabled K8S pod from a service outside of the mesh
假设启用了 Istio 的服务 A
公开了一个名为 http
的端口 8080
,因此 Istio 在从网格内部访问它时执行 L7 负载平衡。
我想知道是否有办法从没有 Istio sidecar 的 pod/service B
访问这个 8080
端口。在这种情况下,流量将是:
B -> A Envoy -> A
要么
B -> A
这样,我就可以访问未命名为 http
的 A
端口(即只有 L4 负载平衡到位)
我的特殊用例是我有 Prometheus(不是 运行 在网格中),Prometheus Operator 直接在网格中抓取服务 运行(不涉及 Istio Mixer;服务公开他们自己的业务逻辑指标)。它仅适用于我,并且仅当给定服务未命名其端口时才有效 http
.
如果您启用了身份验证 (mTLS),它在设计上不起作用,因为在这种情况下,Istio 会尝试保护所有服务到服务的通信。
您可以关闭身份验证,如果这没有帮助,也可以尝试使用 Istio 0.2.4 候选发布版(或您阅读本文时最新的版本,请参阅 https://github.com/istio/istio/releases) and see if the problem persists, if it does please file an issue at https://github.com/istio/issues/issues/new
在 0.3(可能更早)中,我们将允许您对 mTLS 进行精细控制。
假设启用了 Istio 的服务 A
公开了一个名为 http
的端口 8080
,因此 Istio 在从网格内部访问它时执行 L7 负载平衡。
我想知道是否有办法从没有 Istio sidecar 的 pod/service B
访问这个 8080
端口。在这种情况下,流量将是:
B -> A Envoy -> A
要么
B -> A
这样,我就可以访问未命名为 http
的 A
端口(即只有 L4 负载平衡到位)
我的特殊用例是我有 Prometheus(不是 运行 在网格中),Prometheus Operator 直接在网格中抓取服务 运行(不涉及 Istio Mixer;服务公开他们自己的业务逻辑指标)。它仅适用于我,并且仅当给定服务未命名其端口时才有效 http
.
如果您启用了身份验证 (mTLS),它在设计上不起作用,因为在这种情况下,Istio 会尝试保护所有服务到服务的通信。
您可以关闭身份验证,如果这没有帮助,也可以尝试使用 Istio 0.2.4 候选发布版(或您阅读本文时最新的版本,请参阅 https://github.com/istio/istio/releases) and see if the problem persists, if it does please file an issue at https://github.com/istio/issues/issues/new
在 0.3(可能更早)中,我们将允许您对 mTLS 进行精细控制。