我使用 GKE 进行部署。
编辑:我需要访问客户的 API 端点,只有在使用他们的 VPN 时才能访问该端点。到目前为止,我可以运行一个连接到此 VPN 的容器,并且可以成功地卷曲端点。
对于上述内容,我已经配置了一个 Debian docker 映像,该映像在部署时成功连接到 VPN(特别是使用 Kerio Control VPN)。每当我从该容器发出网络请求时,它都会按预期通过 VPN 连接运行。
我有另一个映像运行 .NET Core 程序,该程序会发出必要的 HTTP 请求。
从 this guide 我知道可以使用纯 docker 通过另一个容器运行容器的流量。具体使用 --net=container:something
选项(修剪示例):
docker run \
--name=jackett \
--net=container:vpncontainer \
linuxserver/jackett
但是,我必须使用 Kubernetes 进行此部署,因此我认为使用 2 容器 pod 会很好。我想保持 VPN 连接逻辑和程序分离。
我怎样才能做到这一点?
答案 0 :(得分:1)
pod 中的每个容器都有共享的网络资源。如果您在一个容器中运行 vpn 客户端,则该 Pod 中的所有容器都可以通过 vpn 访问网络。
答案 1 :(得分:0)
根据您的评论,我想我可以为您提供两种方法。
在此设置中,您应该使用 Private GKE cluster
和 CloudNAT
进行外部通信。您需要使用 manual externalIP。
此方案使用特定的 externalIP
进行 VPN 连接,但您的客户需要 whitelist
访问此 IP。
您可以配置您的 VPN 以将数据包转发到您的集群。有关详细信息,您应该查看其他Stackoverflow threads
: