访问同一网络上的 minikube 集群

时间:2021-03-30 14:58:16

标签: ubuntu kubernetes networking ip minikube

我已经在 VM 中设置了一个 minikube 集群用于开发目的。
我部署了一些服务和一个入口控制器(minikube 控制器),以便能够在不使用 NodePorts 的情况下访问它。
在我的 VM 中,我可以像往常一样使用 curl http://hello-world.info 或其他服务访问我的服务。一切正常。

但是当我在我的虚拟机之外时,即使我在同一个网络上也无法访问它。我尝试从我的托管服务器、笔记本电脑和外部使用 VPN。
集群 IP 在我的 VM 内部地址 (ip a) 中很好地列出,但无法在 VM 外部访问(例如: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。

谢谢:)

1 个答案:

答案 0 :(得分:1)

就我个人而言,我还没有找到在 minikube 上使用 --driver=docker 公开 LAN 实例的方法。

作为在 minikube 上公开 LAN 实例的解决方法,您可以--driver

  • --driver=virtualbox
  • --driver=none

特别是将您的 Kubernetes 集群暴露给 LAN,我还会考虑查看其他 Kubernetes 解决方案,例如(您可以在裸机上运行它们,或者使用 bridged 在 vbox vm 中运行它们网络:


--driver=virtualbox

引用我前段时间的部分回答:

<块引用>

正如我之前提到的:当您使用 Virtualbox 创建 minikube 实例时,您将创建以下网络接口:

  • NAT- 允许您的 VM 访问 Internet 的接口。此连接不能用于公开您的服务
  • Host-only-network-adapter - 由您的主机创建的接口,允许在该接口内进行通信。这意味着您的主机和其他具有此特定适配器的虚拟机可以相互连接。它专为内部使用而设计。

您可以在此处阅读有关 Virtualbox 网络的更多信息:

我已设法找到一种解决方法,以允许从您的笔记本电脑/PC 外部连接到您的 minikube 实例。您需要将 minikube 实例设置中的网络接口从 Host-only-network-adapter 更改为 Bridged Adapter(第二个适配器)。这将在另一台设备连接到您的物理网络时起作用。请确保此桥接适配器与以太网 NIC 一起使用。 Minikube 应更改 IP 地址以匹配您的物理地址。

<块引用>

您还需要更改您的 .kube/config,因为它会有旧的/错误的 IP 地址!

之后,您应该能够通过物理网络中可访问的 IP 连接到您的 Ingress 资源。

-- Stackoverflow.com: Answers:: Expose Kubernetes cluster to Internet


--driver=none

您也可以使用 minikube 运行 --driver=none,但此方法有一些注意事项,您可以按照此文档阅读更多相关信息(tl;dr 您正在直接运行 minikube在您的主机上):


其他资源: