了解kubernetes部署、服务和docker映像端口
在使用kubernetes时,我很难理解端口是如何工作的。有三个港口有问题了解kubernetes部署、服务和docker映像端口,docker,port,kubernetes,Docker,Port,Kubernetes,在使用kubernetes时,我很难理解端口是如何工作的。有三个港口有问题 我的应用程序正在docker容器中侦听的端口 kubernetes配置文件中提到的端口为containerPort 部署作为服务公开时的LoadBalancer端口 上述三个端口之间的关系是什么?在我当前的设置中,我在Dockerfile中提到了EXPOSE 8000,在kubernetes配置文件中提到了containerPort:8000。我的应用程序正在docker容器内的端口8000上侦听。当我使用kubectl
containerPort
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
有人能给我解释一下上述三个端口是如何协同工作的,它们对成功“曝光”我的应用程序有什么价值吗?问题出在我的Django服务器上,而不是Kubernetes或docker。我用
python manage.py runserver
启动服务器,而不是python manage.py runserver 0.0.0.0:8080
,这导致服务器返回空响应,因为请求不是来自本地主机 仅供参考。我经常看这些幻灯片。本幻灯片有助于理解docker网络和kubernetes网络的核心。
$ curl http://<some-ip>:8000/status/ -i
curl: (52) Empty reply from server