我在虚拟机内设置了一个
minikube
集群用于开发目的。curl http://hello-world.info
或其他服务访问我的服务。一切正常。
但是当我在虚拟机之外时,即使我在同一网络上也无法访问它。我从我的托管服务器、我的笔记本电脑和外部使用 VPN 进行了尝试。
集群 IP 已在虚拟机内的我的地址中列出(
ip a
),但无法在其外部访问(例如:ping xxx
)。我的虚拟机 IP 设置为静态 (
ubuntu-server 20.XX.XX
),netplan 为 192.168.1.128
,我的集群 IP 为 192.168.49.2
。我的 DHCP 服务器只能在 192.168.1.101-254
之间分配 IP。
谢谢:)。
就我个人而言,我还没有找到在
minikube
上使用 --driver=docker
来公开 LAN
实例的方法。
作为在
minikube
上公开您的 LAN
实例的解决方法,您可以 --driver
:
--driver=virtualbox
--driver=none
具体到将您的 Kubernetes 集群暴露给
LAN
,我还会考虑查看其他 Kubernetes 解决方案,例如(您可以在裸机上运行它们,或者使用 bridged
网络在 vbox 虚拟机中运行它们:
--driver=virtualbox
:引用我自己前段时间的部分回答:
正如我之前提到的:当您使用 Virtualbox 创建
实例时,您将创建以下网络接口:minikube
- 允许您的虚拟机访问互联网的接口。此连接不能用于公开您的服务NAT
- 由主机创建的接口,允许在接口内进行通信。这意味着您的主机和具有此特定适配器的其他虚拟机可以相互连接。它专为内部使用而设计。Host-only-network-adapter
您可以在此处阅读有关 Virtualbox 网络的更多信息:
我设法找到了一个解决方法,以允许笔记本电脑/电脑外部连接到您的
实例。您需要将minikube
实例设置中的网络接口从minikube
更改为Host-only-network-adapter
(第二个适配器)。当另一台设备连接到您的物理网络时,这将起作用。请确保此桥接适配器与以太网 NIC 一起使用。Bridged Adapter
应更改 IP 地址以匹配您的物理地址中使用的地址。Minikube
您还需要更改您的
,因为它的 IP 地址是旧的/错误的!.kube/config
之后,您应该能够通过物理网络中可访问的 IP 连接到您的
资源。Ingress
--driver=none
您还可以使用
minikube
运行 --driver=none
,但此方法有一些注意事项,您可以按照本文档阅读更多相关信息(tl;博士,您直接在主机上运行 minikube
):
其他资源:
我有一个解决方法 - 不是让 minikube/docker/任何东西在我的一台机器接口上监听,而是将流量从端口路由到我的 minikube 实例:使用 iptables 的端口
sudo iptables -t nat -A PREROUTING -p tcp --dport 50000 -j DNAT --to-destination 192.168.58.2:80
--dport 是我的机器上接收来自 LAN 的流量的端口。
为了访问 minikube 系统,我访问 http://hostmachine:50000