- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道 minikube 应该只用于本地,但我想为我的应用程序创建一个测试环境。
为了做到这一点,我希望将我在 minikube 集群内运行的应用程序公开给外部访问(从公共(public)互联网上的任何设备——比如 4G 智能手机)。
注意:我使用 --driver=docker
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 aVM
and uses--driver=docker
you could try to use--driver=none
(you will be able tocurl VM_IP:NodePort
from theLAN
). It will spawn your Kubernetes cluster directly on theVM
.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/
我是一名优秀的程序员,十分优秀!