首页 文章

在Kubernetes中访问同一群集内的后端时出现错误502

提问于
浏览
1

后端:python(Django)前端:angular6

我刚刚在Google Kubernetes中的同一群集上部署了我的后端和前端 . 它们是同一群集内的两个单独服务 . 群集上的pod看起来像:

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 . 部署之前一切正常 .

1 回答

  • 0

    固定 . Django runserver cmd使用0.0.0.0所以它不会阻止外部连接:

    python runserver 0.0.0.0:8000
    

相关问题