【发布时间】:2021-01-16 19:40:42
【问题描述】:
我正在使用 GKE 进行部署。
编辑:我需要访问客户的 API 端点,该端点只有在使用他们的 VPN 时才能访问。到目前为止,我可以运行一个连接到这个 VPN 的容器,并且我可以成功地 cURL 端点。
对于上述情况,我配置了一个 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 连接逻辑和程序分开。
我怎样才能做到这一点?
【问题讨论】:
-
谢谢。我需要访问客户的 API 端点,该端点只有在使用他们的 VPN 时才能访问。到目前为止,我可以运行一个连接到这个 VPN 的容器,并且可以成功地 cURL 端点。将此添加到问题正文中。
-
在 initContainer 配置 Pod 的 iptables 并将所有流量转发到运行 envoy 代理的 sidecar 容器端口时,检查是否可以实现类似于 Istio 注入机制的东西(因为 Pod 容器共享相同的网络命名空间,它实际上是一个本地主机端口)。 istio.io/latest/blog/2019/data-plane-setup/#sidecar-injection 自动注入功能有助于避免更改工作负载清单。
标签: docker kubernetes networking