Kubernetes Minikube服务访问本地VPN

Kubernetes Minikube服务访问本地VPN,kubernetes,vpn,minikube,Kubernetes,Vpn,Minikube,如何让我的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.n

如何让我的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# 
(显然已消毒)

附言:我确实发现有一篇文章提到了我的目标,但我似乎无法让它发挥作用:


仍然无法访问专用ip(通过主机的vpn)。

有几种方法可以实现这一点

如果您只想从VPN向minikube公开一些服务,那么可以利用SSH的反向隧道,如本文所述。这将在minikube VM上以端口的形式提供服务,因此本质上就像一个节点端口,然后SSH将通过隧道传输这些服务,主机将通过VPN为您路由这些服务

但是,如果您确实需要访问VPN背后的整个网络,则需要使用不同的方法。以下假设您的VPN配置为拆分隧道,它使用NAT,并且没有使用冲突的IP范围

最简单的选择是在minikube内部运行VPN客户端,从而提供对VPN和网络的一流访问,而不需要设置任何路由。另一个选项是自己设置路由,以便访问主机上的VPN。这意味着确保涵盖以下内容:

  • pod网络的主机路由<代码>sudo ip路由通过$(minikube ip)添加$REPLACE_和_POD_NETWORK}例如,对于我的情况,这是
    sudo ip路由通过192.168.99.119添加10.0.2.0/24
  • 从主机ping到pod网络地址(您必须与kubectl一起查找,例如,
    kubectl获取pod-n kube系统kube apiserver minikube-o yaml
  • 这应该是可行的,因为pod/service/kubelet中的网络/路由是由默认路由处理的,它涵盖了所有内容。然后,当流量到达主机时,VPN和它所暴露的任何网络都将有相应的路由,主机将知道如何将其路由到VPN,并对其进行NAT以处理返回路径。当流量返回时,它会因为NAT'ing而击中您的主机,它会查找路由表,查看您之前添加的条目,然后将流量转发到minikube,然后转发到pod/服务,瞧


    希望这能有所帮助。

    我尝试将
    telnet
    本地连接到我的gitlab,它支持VPN,很好。当我在minikube做这件事时,它不起作用。我试着从第1和第2部分找到你的解决方案,但运气不好。如何调试它?非常感谢。