从另一个集群的 Pod 容器蜷缩到由开放 VPN 保护的 API 集群中



我在 VPC 内的 AWS 上创建了 2 个 kubernetes 集群。

1) 专用于微服务 (MI) 的集群 2) 专用于领事/保险库的集群(保险库) 因此,基本上这两个集群都可以通过不同的经典公共负载均衡器访问,这些负载均衡器公开了k8s API。

米:https://api.k8s.domain.com 保险库:https://api.vault.domain.com

我还在两个集群上设置了 openvpn,因此您需要登录 vpn 才能"curl"或"kubectl"进入集群。 为此,我只是在 ELB 的安全组中添加了一个新规则,其中 VPN 的 IP 位于端口 443 上:

HTTPS 443 VPN 的 IP/32

在这一点上一切正常,这意味着我能够在两个集群中成功"kubectl"。

接下来我需要做的是能够从 pod 容器内的 Vault 集群到 MI 集群中进行卷曲。基本上:

保管库群集-------->卷曲 https://api.k8s.domain.com --标头"授权:持有者$TOKEN"--------> MI 群集

问题是目前集群只允许来自VPN的IP的流量。

为了解决这个问题,我在 MI 集群负载均衡器的安全组中添加了新规则。

这些新规则允许来自每个保管库的节点私有和主实例 IP 的流量。 但由于某种原因它不起作用!

请注意,在ELB的安全组中添加限制之前,我已经确保通信与允许所有流量(0.0.0.0/0)的两个集群一起工作

所以问题是当我在 pod 容器中将命令 curl 执行到同一 VPC 内的另一个集群 api 中时,要添加到安全组的容器的 IP 是什么?

必须将 NAT 网关的保管库 VPC 的 EIP 添加到 ELB 的安全组中才能允许流量。

最新更新