如何解决如何在 Docker Desktop / Minikube 上公开 Web 应用程序
我使用 Docker 桌面和 Kubernetes 部署了由 3 个 pod 组成的简单 .NET Core 应用程序。 我的目标是在我的主机浏览器中公开工作的 Web 应用程序:
我在 Fronend pod 中的 React 应用程序在 appsettings.js 文件中指向后端集群 IP 服务以从后端获取数据。当我在前端 pod 中时,这正常工作,获取工作。
使用 NodePort 服务暴露 Fronend Pod,应用程序可访问,但我的问题是对后端 Pod 的请求失败 - 请求指向后端 ClusterIP 服务,而我的主机无法解析它们。
这应该如何在 Docker Desktop 或 Minikube 等单节点环境中完成? 如果我想在我的前端应用中使用多个不同的后端 api,它也应该可以工作。
感谢您的帮助!
解决方法
在您的情况下,前端和后端都需要从集群外部访问。因此后端服务必须是 NodePort
或 LoadBalancer
类型。
原因是前端不与后端服务(在集群中)交互。 Frontend pod 只是被浏览器用来下载你的 React 应用程序。然后浏览器运行你的 React 应用程序。而此应用程序 - 不在您的集群中运行 - 必须使用后端服务。这就是后端服务必须可从外部访问的原因。
,对我来说最简单的方法是将 minikube 与 Ingress Controller 一起使用 - https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。