首页 文章

了解kubernetes部署,服务和docker镜像端口

提问于
浏览
0

我在使用kubernetes时无法理解端口的工作方式 . 有三个端口有问题

  • 我的应用正在Docker容器内侦听的端口

  • 在kubernetes配置文件中提到的端口为 containerPort
    部署作为服务公开时的

  • LoadBalancer端口

上述三个港口之间有什么关系?在我目前的设置中,我在我的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

有人可以解释一下上面三个端口如何协同工作以及他们的应用程序成功“曝光”的 Value 应该是什么?

1 回答

  • 0

    问题出在我的Django服务器上,而不是Kubernetes或docker . 我用 python manage.py runserver 而不是 python manage.py runserver 0.0.0.0:8080 启动我的服务器,这导致它返回空响应,因为请求不是来自localhost .

相关问题