Minikube-访问主机的端口

时间:2019-03-13 12:14:06

标签: docker kubernetes minikube

我正在使用带有hyperkit驱动程序的minikube,并且需要从minikube集群内的Pod访问主机上打开的端口。

有两种方法可以完成此任务:

端口转发

将本地端口转发到minikube ip

ssh -i $(minikube ssh-key) docker@$(minikube ip) -R 8080:localhost:8080

然后我可以从吊舱curl 172.17.0.1:8080

  

来源:https://medium.com/tarkalabs/proxying-services-into-minikube-8355db0065fd

本地计算机的IP

从主机上,我获得了minikube的网桥IP:ifconfig bridge100

bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=3<RXCSUM,TXCSUM>
    ether 8e:85:90:2d:d5:64
    inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255

然后我可以从吊舱curl 192.168.64.1:8080

但是,我不确定这两种方法是否正确。 有没有一种方法可以静态引用主机以访问打开的端口。 这里有什么解决方案?

1 个答案:

答案 0 :(得分:1)

这里涉及的间接层太多,您必须将物理主机的IP地址作为环境变量或ConfigMap设置注入到容器中。外部名称类型服务也可以在这里工作。

这里的本质问题是,每个层都可以找到紧随其后的该层的信息,但是无法进一步发现。您有一台运行VM的主机,该VM运行Kubernetes Pod。 Pod可以使用downward API来找到其节点的IP地址,但在您的情况下,它将是VM,而不是其周围的主机。

(作为一个平行的问题:您有一个普通的家用路由器192.168.1.1,而本地系统是192.168.1.2。您在路由器上运行了一些服务器。同时,您在本地系统上运行了VM ,该主机将主机视为172.17.0.1,并认为它是172.17.0.2。如果VM不知道其本地网络环境中的192.168.1.0/24网络,则VM如何到达路由器上的服务?)< / p>

相关问题