访问同一网络上的minikube集群

问题描述 投票:0回答:2

我在虚拟机内设置了一个

minikube
集群用于开发目的。
我部署了一些服务和一个入口控制器(minikube),以便能够在不使用 NodePorts 的情况下访问它。
在我的虚拟机中,我可以像往常一样使用
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。

谢谢:)。

ubuntu kubernetes networking ip minikube
2个回答
3
投票

就我个人而言,我还没有找到在

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
更改为
Bridged Adapter
(第二个适配器)。当另一台设备连接到您的物理网络时,这将起作用。请确保此桥接适配器与以太网 NIC 一起使用。
Minikube
应更改 IP 地址以匹配您的物理地址中使用的地址。

您还需要更改您的

.kube/config
,因为它的 IP 地址是旧的/错误的!

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

Ingress
资源。

-- Stackoverflow.com:答案:: 将 Kubernetes 集群暴露到互联网


--driver=none

您还可以使用

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


其他资源:


0
投票

我有一个解决方法 - 不是让 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

© www.soinside.com 2019 - 2024. All rights reserved.