在同一网络上访问 minikube 集群
access minikube cluster on the same network
我已经在 VM 中设置了一个 minikube
集群用于开发目的。
我已经部署了一些服务和一个入口控制器(minikube 控制器)以便能够在不使用 NodePorts 的情况下访问它。
在我的 VM 中,我可以像往常一样使用 curl http://hello-world.info
或其他服务访问我的服务。一切正常。
但是当我在我的虚拟机之外时,即使我在同一个网络上,我也无法访问它。我从我的托管服务器、我的笔记本电脑和外部使用 VPN 进行了尝试。
集群 IP 很好地列在我在 VM 内的地址中 (ip a
),但在其外部无法访问(例如:ping xxx
)。
如何在同一网络内的另一台机器上访问我的集群服务?
我的 VM 的 IP 设置为静态 (ubuntu-server 20.XX.XX
),netplan 在 192.168.1.128
,我的集群 IP 是 192.168.49.2
。我的 DHCP 服务器只允许在 192.168.1.101-254
.
之间分配 IP
谢谢 :).
就我个人而言,我还没有找到在 LAN
上使用 --driver=docker
公开 minikube
实例的方法。
作为在 LAN
上公开您的 minikube
实例的解决方法,您可以 --driver
:
--driver=virtualbox
--driver=none
具体到将您的 Kubernetes 集群暴露给 LAN
,我还会考虑检查其他 Kubernetes 解决方案,例如(您可以 运行 它们在裸机上或 运行 它们在具有 bridged
网络的 vbox 虚拟机中:
--driver=virtualbox
:
引用自己前段时间的部分回答:
As I previously mentioned: When you create your minikube
instance with Virtualbox you will create below network interfaces:
NAT
- interface which will allow your VM to access the Internet. This connection cannot be used to expose your services
Host-only-network-adapter
- interface created by your host which allows to communicate within the interface. It means that your host and other vm's with this particular adapter could connect with each other. It's designed for internal usage.
You can read more about Virtualbox networking here:
I've managed to find a workaround to allow connections outside your laptop/pc to your minikube
instance. You will need to change network interface in settings of your minikube
instance from Host-only-network-adapter
to Bridged Adapter
(2nd adapter). This will work as another device was connected to your physical network. Please make sure that this bridged adapter is used with Ethernet NIC. Minikube
should change IP address to match the one used in your physical one.
You will also need to change your .kube/config
as it will have the old/wrong IP address!
之后您应该能够通过物理网络中可访问的 IP 连接到您的 Ingress
资源。
--
--driver=none
您还可以 运行 minikube
和 --driver=none
但此方法有一些注意事项,您可以通过阅读此文档了解更多信息(tl;dr 你是 运行直接在您的主机上安装您的 minikube
):
其他资源:
我已经在 VM 中设置了一个 minikube
集群用于开发目的。
我已经部署了一些服务和一个入口控制器(minikube 控制器)以便能够在不使用 NodePorts 的情况下访问它。
在我的 VM 中,我可以像往常一样使用 curl http://hello-world.info
或其他服务访问我的服务。一切正常。
但是当我在我的虚拟机之外时,即使我在同一个网络上,我也无法访问它。我从我的托管服务器、我的笔记本电脑和外部使用 VPN 进行了尝试。
集群 IP 很好地列在我在 VM 内的地址中 (ip a
),但在其外部无法访问(例如:ping xxx
)。
如何在同一网络内的另一台机器上访问我的集群服务?
我的 VM 的 IP 设置为静态 (ubuntu-server 20.XX.XX
),netplan 在 192.168.1.128
,我的集群 IP 是 192.168.49.2
。我的 DHCP 服务器只允许在 192.168.1.101-254
.
谢谢 :).
就我个人而言,我还没有找到在 LAN
上使用 --driver=docker
公开 minikube
实例的方法。
作为在 LAN
上公开您的 minikube
实例的解决方法,您可以 --driver
:
--driver=virtualbox
--driver=none
具体到将您的 Kubernetes 集群暴露给 LAN
,我还会考虑检查其他 Kubernetes 解决方案,例如(您可以 运行 它们在裸机上或 运行 它们在具有 bridged
网络的 vbox 虚拟机中:
--driver=virtualbox
:
引用自己前段时间的部分回答:
As I previously mentioned: When you create your
minikube
instance with Virtualbox you will create below network interfaces:
NAT
- interface which will allow your VM to access the Internet. This connection cannot be used to expose your servicesHost-only-network-adapter
- interface created by your host which allows to communicate within the interface. It means that your host and other vm's with this particular adapter could connect with each other. It's designed for internal usage.You can read more about Virtualbox networking here:
I've managed to find a workaround to allow connections outside your laptop/pc to your
minikube
instance. You will need to change network interface in settings of yourminikube
instance fromHost-only-network-adapter
toBridged Adapter
(2nd adapter). This will work as another device was connected to your physical network. Please make sure that this bridged adapter is used with Ethernet NIC.Minikube
should change IP address to match the one used in your physical one.You will also need to change your
.kube/config
as it will have the old/wrong IP address!之后您应该能够通过物理网络中可访问的 IP 连接到您的
Ingress
资源。--
--driver=none
您还可以 运行 minikube
和 --driver=none
但此方法有一些注意事项,您可以通过阅读此文档了解更多信息(tl;dr 你是 运行直接在您的主机上安装您的 minikube
):
其他资源: