从网格外部但仍在同一集群内的另一个应用程序访问网格内部的服务

问题描述 投票:0回答:1

我有两个应用程序:

  • 应用程序 A 位于服务网格之外。在命名空间
    ns-outside-mesh
    下。它的 pod 没有任何 sidecar。
  • 应用程序 B 位于服务网格内部。在命名空间
    ns-inside-mesh
    下。它的 pod 有 Istio 代理 sidecar。

两个应用程序都在同一个集群中。不涉及 Ingress。它们都是集群内通信。

我通过 ssh 访问应用程序 A,并通过curl 访问服务 B,这是使用命令

curl serviceB.ns-inside-mesh.svc
与应用程序 B 关联的服务。它给了我 403 rbac 访问被拒绝,这是预期的,因为 Pod A 没有任何 Istio 代理 sidecar,它将嵌入带有必要授权信息的请求。

如何让应用程序A访问应用程序B?我不想使用 Istio Gateway,因为我不想公开公开此应用程序。我只想将其公开给同一集群内但服务网格之外的其他应用程序。

kubernetes mesh istio
1个回答
0
投票

如果您对 mTLS 使用 STRICT 模式,则这是不可能的。您必须更改为 PERMISSIVE 模式,或者,如果您使用 STRICT 模式,请配置 PeerAuth 以在给定工作负载的端口级别禁用 mTLS。

编辑:或者相反,将全局 mTLS 设置为 PERMISSIVE,然后在每个主机名的目标规则 ISTIO_MUTUAL 中为您不想从 sidecar 应用程序访问的主机名启用。

© www.soinside.com 2019 - 2024. All rights reserved.