gpt4 book ai didi

kubernetes - 如何将 Minikube 集群暴露到互联网

转载 作者:行者123 更新时间:2023-12-05 01:31:34 24 4
gpt4 key购买 nike

我知道 minikube 应该只用于本地,但我想为我的应用程序创建一个测试环境。
为了做到这一点,我希望将我在 minikube 集群内运行的应用程序公开给外部访问(从公共(public)互联网上的任何设备——比如 4G 智能手机)。

注意:我使用 --driver=docker

运行 minikube

kubectl 获取服务

NAME      TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
web8080 NodePort 10.99.39.162 <none> 8080:31613/TCP 3d1h

minikube ip

192.168.49.2

一种方法如下:

firewall-cmd --add-port=8081/tcp
kubectl port-forward --address 0.0.0.0 services/web8080 8081:8080

然后我可以使用:

curl localhost:8081      (directly from the machine running the cluster inside a VM)
curl 192.168.x.xx:8081 (from my Mac in same network - this is the private ip of the machine running the cluster inside a VM)
curl 84.xxx.xxx.xxx:8081 (from a phone connected in 4G - this is the public ip exposed by my router)

我不想使用这个解决方案,因为 kubectl port-forward 很弱,每次端口转发不再活跃时都需要运行。

我怎样才能做到这一点?

(已编辑)- 使用负载均衡器

当使用 LoadBalancer 类型和 minikube 隧道 时,我只能在运行集群的机器内部公开服务。

kubectl 获取服务

NAME         TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
my-service LoadBalancer 10.111.61.218 10.111.61.218 8080:31831/TCP 3d3h

curl 10.111.61.218:8080(在运行集群的机器内部)正在运行
但是 curl 192.168.x.xx:8080(来自同一 LAN 上的我的 Mac)不工作

谢谢

最佳答案

Minikube 作为单节点 Kubernetes 集群的开发工具,在 Kubernetes 和外部设备之间提供了固有的隔离层(特定于从 LAN/WAN).

不同--drivers在涉及 Kubernetes 集群的生成位置以及它在网络方面的行为方式时,允许灵 active 。

A side note (workaround)!

As your minikube already resides in a VM and uses --driver=docker you could try to use --driver=none (you will be able to curl VM_IP:NodePort from the LAN). It will spawn your Kubernetes cluster directly on the VM.

Consider checking it's documentation as there are some certain limitations/disadvantages:


由于此设置已经基于 VM(具有未知的管理程序)并且集群旨在暴露在您的 LAN 之外,我建议您使用生产就绪设置。这将本质上消除您面临的连接问题。 Kubernetes 集群将直接在 VM 上配置,而不是在 Docker 容器中配置。

解释 --driver=docker 使用:它将在主机系统上生成一个容器,其中包含 Kubernetes。在此容器内,Docker 将再次用于生成运行 Kubernetes 集群所需的Pod

至于配置 Kubernetes 集群的工具,您需要选择最适合您需求的选项。 其中一些如下:

VM 上创建 Kubernetes 集群后,您可以将流量从路由器直接转发到您的 VM


您可能会发现有用的其他资源:

关于kubernetes - 如何将 Minikube 集群暴露到互联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66088041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com