2017-05-14 145 views
0

我無法理解在使用kubernetes時端口如何工作。有三個端口有問題瞭解kubernetes部署,服務和Docker鏡像端口

  1. 端口,我的應用程序監聽的泊塢窗容器
  2. 港kubernetes配置文件中提到containerPort
  3. 負載平衡器端口部署時,作爲服務公開

上述三個端口之間的關係是什麼?在我目前的設置中,我在Dockerfile中提到了EXPOSE 8000,在kubernetes配置文件中提到了containerPort: 8000。我的應用正在收聽碼頭集裝箱內的端口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

僅供參考。我經常提到這些幻燈片。 https://www.slideshare.net/CJCullen/kubernetes-networking-55835829。幻燈片有助於瞭解碼頭網絡和kubernetes網絡的核心。 –

回答

0

問題出在我的Django服務器上,而不是Kubernetes或docker。我用python manage.py runserver而不是python manage.py runserver 0.0.0.0:8080啓動我的服務器,導致它返回空響應,因爲請求不是來自本地主機。

相關問題