如何让我的 pod 或 minikube 能够查看我的笔记本电脑通过 VPN 连接到的 10.x 网络?
设置:
* 迷你库贝
* PHP 容器
php 代码访问私有存储库,10.x 地址。东西可以在本地找到,但我无法在 Pod 中访问同一个 10.x 地址。
如何让我的 pod/minikube 访问我的 VPN 路由?
my-pod-99dc9d9d4-6thdj#
my-pod-99dc9d9d4-6thdj# wget https://private.network.host.com/
Connecting to private.network.host.com (10.x.x.x:443)
^C
my-pod-99dc9d9d4-6thdj#
(显然是经过消毒的)
PS:我确实找到了一篇文章提到了我所追求的内容,但我似乎无法让它发挥作用:如何从 Kubernetes Pod 连接到私有 IP https://stackoverflow.com/questions/55458997/how-to-connect-to-a-private-ip-from-kubernetes-pod
仍然无法访问私有IP(通过我的主机的VPN)。
有几种方法可以实现这一目标。
如果您只想从 VPN 向 minikube 公开一些服务,那么您可以利用 SSH 的反向隧道,如本文所述;将服务代理到 minikube https://medium.com/tarkalabs/proxying-services-into-minikube-8355db0065fd。这会将服务呈现为 minikube VM 上的端口,因此本质上就像一个 nodePort,然后 SSH 会将这些服务导出,主机将通过 VPN 为您路由它们。
但是,如果您确实需要访问 VPN 后面的整个网络,那么您将需要使用不同的方法。以下假设您的 VPN 配置为分割隧道,它使用 NAT,并且没有使用冲突的 IP 范围。
最简单的选择是在 minikube 内运行 VPN 客户端,从而提供对 VPN 和网络的一流访问,并且不需要设置任何路由。另一种选择是自行设置路由,以便到达主机上的 VPN。这意味着确保涵盖以下内容:
- Pod 网络的主机路由;
sudo ip route add $REPLACE_WITH_POD_NETWORK} via $(minikube ip)
例如就我而言,这是sudo ip route add 10.0.2.0/24 via 192.168.99.119
- 从主机 ping 到 pod 网络地址(您必须使用 kubectl 进行查找,例如
kubectl get pod -n kube-system kube-apiserver-minikube -o yaml
)
这应该可行,因为 pod/service/kubelet 中的网络/路由是由默认路由处理的,它涵盖了所有内容。然后,当流量到达主机时,VPN 及其暴露的任何网络都会有相应的路由,主机将知道将其路由到 VPN,并对其进行 NAT 以处理返回路径。当流量返回时,由于 NAT,它将到达您的主机,它将查找路由表,查看您之前添加的条目,并将流量转发到 minikube,然后转发到 pod/服务,瞧!
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)