我已经在 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。
谢谢:)
答案 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
在您的主机上):
其他资源: