后端:python(Django) 前端:angular6
我刚刚将后端和前端部署在Google Kubernetes中的同一集群上。它们是同一群集中的两个单独的服务。群集上的豆荚如下所示:
NAME READY STATUS RESTARTS AGE
backend-f4f5df588-nbc9p 1/1 Running 0 1h
frontend-85885799d9-92z5f 1/1 Running 0 1h
该服务如下:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
backend LoadBalancer 10.3.249.148 35.232.61.116 8000:32291/TCP 26m
frontend LoadBalancer 10.3.248.72 35.224.112.111 8081:31444/TCP 3m
kubernetes ClusterIP 10.3.240.1 <none> 443/TCP 1h
我的后端仅在django服务器上工作,从使用python manage.py runserver
命令开始,一切正常。我构建了前端并部署在Nginx服务器上。因此,有两个Docker映像,一个用于django,一个用于nginx,作为集群中的两个Pod。
然后它们两个都有两个入口。暴露80个前端端口和8000个后端端口。保持负载平衡器nginx控制器。分配域后,我可以访问https://abc/project作为前端。但是,当我要发出API请求时,会出现ERR 502。 nginx中的错误消息是:
38590 connect() failed (111: Connection refused) while connecting to upstream, client: 163.185.148.245, server: _, request: "GET /project/api HTTP/1.1", upstream: "http://10.0.0.30:8000/dataproject/api", host: "abc"
上游错误消息是后端服务的正确IP,但仍然出现502错误。我可以从Nginx服务器卷曲到前端。但是无法治愈后端。有什么帮助吗? PS。部署前一切正常。
答案 0 :(得分:0)
已修复。 Django runserver cmd使用0.0.0.0,因此不会阻止外部连接:
python runserver 0.0.0.0:8000