Django 无法使用Minikube+;入口+;德扬戈

Django 无法使用Minikube+;入口+;德扬戈,django,kubernetes-ingress,minikube,kubernetes-service,Django,Kubernetes Ingress,Minikube,Kubernetes Service,在我的本地开发设置中,我使用Django作为Web服务器(a-lapython manage.py runserver 8000),并且我能够kubectl端口将8000我的流量转发到本地开发机器,这样我就可以通过浏览http://localhost:8000/testpage。我已将我的ALLOWED_HOSTS配置为包含localhost以启用此功能 但是,我希望避免使用端口转发,而是通过Kubernetes入口控制器和服务运行我的流量在同一个Minikube集群上,我将入口配置为将某些流量

在我的本地开发设置中,我使用Django作为Web服务器(a-la
python manage.py runserver 8000
),并且我能够
kubectl端口将8000
我的流量转发到本地开发机器,这样我就可以通过浏览
http://localhost:8000/testpage
。我已将我的
ALLOWED_HOSTS
配置为包含
localhost
以启用此功能

但是,我希望避免使用
端口转发
,而是通过Kubernetes入口控制器和服务运行我的流量在同一个Minikube集群上,我将入口配置为将某些流量URL指向非常基本的
nginx
pod,以确认我的入口+服务+pod网络工作正常。
所有其他URL应路由到我的Django应用程序。唯一的区别是nginx流量都在端口80上

在我的入口控制器日志中,我可以看到发送到Django应用程序的k8s服务的流量:
192.168.64.1-[192.168.64.1]-[22/Nov/2019:03:50:52+0000]“GET/testpage HTTP/2.0”502 565-“browser”24 0.002[default-django-service-8000][]172.17.0.5:8000、172.17.0.5:8000、172.17.0.5:8000、0、0、0.000、0.000、0.000、0.000 502、502、502 AA2682896E4D7A2052617F7D11A02B

当我查看Django日志时,我没有看到任何流量

我的入口
servicePort
8000
django服务
端口是
8000
(我刚刚让它默认为
ClusterIP
),pod的
spec.containers.ports.containerPort
8000
,进程已经设置为监听port
8000
,正如我前面提到的

当我选中
kubectl get endpoints
时,它会正确地显示端口8000上连接了一个端点(当我重新启动新POD时,它会正确地更改为新POD的IP)

我已使用以下指南尝试调试:

我猜
允许的\u主机可能有问题,但我在列表中添加了一个
*
通配符,它仍然不起作用


我的设置有什么问题?

您需要通过运行
python manage.py runserver 0.0.0.0:
来指示服务器侦听所有接口

默认情况下,Django的runserver侦听本地环回接口(localhost/127.0.0.1),因此,如果运行
python manage.py runserver 8000
,则只能从运行服务器的机器访问端口8000上的服务器

关于这一点有很多文档,但这里仅举几个例子:


您可以发布您的入口YAML吗?还有,您使用的是什么版本的Minikube和kubernetes?