vag*_*i k 4 tunnel docker kubernetes minikube nginx-ingress
我的问题与此完全相同。但再次复制问题供您参考::
\n我面临的问题是我无法使用浏览器的 IP 访问 Minikube Ingress。我已经在 Windows 10 Home 上安装了 Minikube,并使用 docker driver( ) 启动了 minikube minikube start --driver=docker。
\n\n系统信息:
\nWindows 10 家庭版
\nMinikube(v1.18.1)
\nDocker(minikube 驱动程序)- Docker\n引擎版本 20.10.5
\n
我正在关注这个官方文档 - https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/
\n首先,我通过在 Minikube 上运行以下命令来创建部署。
\nkubectl create deployment web --image=gcr.io/google-samples/hello-app:1.0
部署已创建,如下图所示:在此处输入图像描述
\n\n接下来,我公开了上面创建的部署。为此,我运行了以下命令。
\nkubectl expose deployment web --type=NodePort --port=8080
这创建了一个服务,可以通过运行以下命令查看该服务:
\nkubectl get service web\n服务截图如下:\n
minikube service web
在下面的屏幕截图中,您可以看到我可以在浏览器上查看它。
\n\nkubectl apply -f https://k8s.io/examples/service/networking/example-ingress.yaml
入口已创建,我可以通过运行以下命令来验证它:
\nkubectl get ingress\n下面给出了此屏幕截图:\n
入口 IP 列为 192.168.49.2。所以这意味着如果我应该在浏览器中打开它,那么它应该打开,但不幸的是没有。显示无法访问网站。请参阅下面的屏幕截图。
\n\n问题是什么。请为我提供解决方案吗?
\n我还在 etc\\hosts 文件中添加了映射。
\n192.168.49.2 hello-world.info
然后我也尝试在浏览器上打开 hello-world.info 但没有成功。
\n在下图中,我已对 hello-world.info 执行 ping 操作,其 IP 地址为 192.168.49.2。这表明 etc\\hosts 映射是正确的:
\n\n我还对 minikube ip 和 hello-world.info 进行了curl操作,但两者都超时了。见下图:
\n\n提供kubectl describe services web以下详细信息:
Name: web\nNamespace: default\nLabels: app=web\nAnnotations: <none>\nSelector: app=web\nType: NodePort\nIP: 10.100.184.92\nPort: <unset> 8080/TCP\nTargetPort: 8080/TCP\nNodePort: <unset> 31880/TCP\nEndpoints: 172.17.0.4:8080\nSession Affinity: None\nExternal Traffic Policy: Cluster\nEvents: <none>\nRun Code Online (Sandbox Code Playgroud)\n给出kubectl describe ingress example-ingress以下输出:
Name: example-ingress\nNamespace: default\nAddress: 192.168.49.2\nDefault backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)\nRules:\n Host Path Backends\n ---- ---- --------\n hello-world.info\n / web:8080 172.17.0.4:8080)\nAnnotations: nginx.ingress.kubernetes.io/rewrite-target: /$1\nEvents: <none>\nRun Code Online (Sandbox Code Playgroud)\n按照以下说明(如评论中发布的),该问题似乎已解决:
\n\n\n一旦你设置了入口并进行了必要的更改,我猜你已经在 Windows 的 powershell 中且 minikube 运行正确了?确保\n\xe2\x80\x98启用插件 ingress\xe2\x80\x99 并有一个单独的控制台运行\xe2\x80\x98minikube\ntunnel\xe2\x80\x99。另外,将主机名和 IP 地址添加到 windows\xe2\x80\x99\nhost 表中。然后在powershell中输入\xe2\x80\x98minikue ssh\xe2\x80\x99,它会给你\n命令行。然后你可以 \xe2\x80\x98curl myapp.com\xe2\x80\x99 然后你应该得到\n预期的响应。
\n
然而,就我而言,minikube 隧道在发出命令后没有响应minikube tunnel。:
我什至无法curl hello-world.info通过minikube ssh。请帮忙!
在 Windows 上
经过一段时间后,我得出的结论是 Ingress 与 Windows10-Home 上的 Docker 存在一些冲突。如果我们想公开 NodePort 类型的服务,一切都很好,但 Ingress 很麻烦。
此外,我尝试在 Windows 10 中使用 Ubuntu 设置 WSL 2,但没有成功。
最后,以下内容适用于 Windows10 Home 上的 Minikube Ingress:
Control Panel -> Programs -> Turn Windows Features on and off (under Programs and Features),然后单击“确定”。如果出现提示,请重新启动计算机。minikube delete
minikube start --driver=virtualbox
Run Code Online (Sandbox Code Playgroud)
如果minikube start --driver=virtualbox不起作用,则使用minikube start --driver=virtualbox --no-vtx-check.
这个过程解决了我的问题,并且 ingress 在我的 Windows 10 Home Minikube 上运行良好。
在Ubuntu上
最后,Ubuntu 上的 Docker 本质上无缝支持 Minikube Ingress,不会出现任何故障。
| 归档时间: |
|
| 查看次数: |
1850 次 |
| 最近记录: |