【问题标题】:Cant connect frontend and backend deployments in kubernetes无法在 Kubernetes 中连接前端和后端部署
【发布时间】:2021-02-10 19:27:09
【问题描述】:

我在一个集群 GKE 中有两个 k8s 部署,对于一个 Web 应用程序,一个是前端(react),另一个是后端(python),前端工作正常,但是当我尝试在前端做一些调用时我得到了this 的后端,我有前端的入口,效果很好,唯一我想不通的是为什么前端无法到达后端,我希望他们通过服务进行通信。我有以下服务:

前端服务

apiVersion: v1
kind: Service
metadata:
  name: frontend
spec:
  selector:
    app: hello
    tier: frontend
  ports:
  - protocol: "TCP"
    port: 80
    targetPort: 3000

后端服务

apiVersion: v1
kind: Service
metadata:
  name: backend
spec:
  selector:
    app: hello
    tier: backend
    track: stable
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8000 

有什么修复建议吗?

【问题讨论】:

  • 你能提供更多关于前端服务的细节吗?前端服务是在浏览器(如 Angular)上运行的客户端应用程序吗?或者它是在服务器端运行的另一个 Web 应用程序,但无法连接到已部署的后端服务?
  • @lkamal 它是一个 react 应用程序,即前端和后端 python,都部署在同一个集群上,我在关注这个 link 两者都使用 GCP 部署在 GKE 集群上
  • 我假设你说这是一个 ReactJS 应用程序?

标签: kubernetes google-cloud-platform google-kubernetes-engine kubernetes-ingress


【解决方案1】:

当应用程序是客户端应用程序(如 react 或 Angular)时,应用程序在客户端浏览器上运行;不在服务器端。在这种情况下,客户端浏览器中的应用程序必须调用服务器(后端应用程序)上的 API。

在这种情况下,即使应用程序被命名为后端;它必须通过 Ingress 公开 API,以便客户端浏览器上运行的前端应用程序可以使用这些 API。

【讨论】:

    猜你喜欢
    • 2021-01-18
    • 1970-01-01
    • 2020-09-26
    • 2019-07-19
    • 2020-12-25
    • 1970-01-01
    • 2022-11-04
    • 2020-08-17
    • 2020-12-22
    相关资源
    最近更新 更多