在使用kubernetes时,我无法理解端口的工作方式。有三个端口有问题
containerPort
以上三个端口之间有什么关系?在我目前的设置中,我在Dockerfile中提到了EXPOSE 8000
,在kubernetes配置文件中提到了containerPort: 8000
。我的应用正在侦听docker容器中的端口8000
。当我使用kubectl expose deployment myapp --type="LoadBalancer"
公开此部署时,会产生以下服务 -
$ kubectl get service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
myapp 10.59.248.232 <some-ip> 8000:32417/TCP 16s
但我的curl
失败,如下所示 -
$ curl http://<some-ip>:8000/status/ -i
curl: (52) Empty reply from server
有人可以向我解释一下上述三个端口如何协同工作以及它们对于成功曝光的价值应该是什么?我的应用程序?
答案 0 :(得分:0)
问题出在我的Django服务器上,而不是Kubernetes或docker。我使用python manage.py runserver
而不是python manage.py runserver 0.0.0.0:8080
启动我的服务器,这导致它返回空响应,因为请求不是来自localhost。