如何从外部连接到minikube服务

Mad*_*bat 10 kubernetes minikube

我正在尝试将本地开发环境切换为在minikube中运行。我已构建了所有容器映像,并已完成所有YAML配置,并且已运行了所有需要运行的服务,并且可以使用返回的URL minikube service web --url(web是我的前端nginx服务器的名称)来访问它们。但是有一件事我无法弄清楚。我正在从事的项目需要与后端通信的智能外部设备。我有几个坐在长凳上的设备,它们连接到本地LAN,但是我不知道如何将运行在minikube中的服务暴露给外部,即,这样设备就可以使用笔记本电脑的外部IP连接到服务。有这样做的标准方法吗?

编辑:我试图为我的服务配置入口。这是我的入口配置。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web
spec:
  backend:
    serviceName: web
    servicePort: 80
Run Code Online (Sandbox Code Playgroud)

该Web服务可通过minikube service web命令访问,并显示为NodePort类型。当我尝试访问入口时,我得到的只是“默认后端404”。另一方面,即使它确实起作用,我仍然会遇到问题,因为入口正在将服务公开到VM内部子网中,并且无法从主机外部访问。我开始考虑运行某种代理或加速器,以将事物从主机转发到minikube vm。仍然需要运行入口以具有代理的持久端点。

小智 7

有多种方法。但是我以这种方式找到了解决方案。

~ ?   $ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100
Run Code Online (Sandbox Code Playgroud)

在这里,我们可以使用192.168.99.100和nodeport连接该服务。对于节点端口为30000的仪表板来说,URL为:http : //192.168.99.100 :30000/

可以使用以下命令获取服务端口:

~ ?   $ kubectl get svc --all-namespaces
Run Code Online (Sandbox Code Playgroud)

  • 大约一年前我问过这个问题,所以我没有准备好相同的设置。但我不认为你的解决方案有效。Minikube 在 VM 中运行所有内容。因此,即使服务具有 NodePort,它映射到的端口也位于虚拟机上,而不是物理机上。这正是您的输出所说的“指向 minikube-vm at 192.168.99.100”。minikube VM 不能从它运行的机器外部访问。 (2认同)

Mic*_*las 2

例如,使用 Minikube Ingress插件,请参阅此博客文章如何设置和使用它。