2017-05-14 2 views
0

Ich habe Probleme zu verstehen, wie Ports arbeiten, wenn Kubernetes verwenden. Es gibt drei Häfen in FrageVerständnis von Kubernetes Deployment-, Service- und Docker-Image-Ports

  1. Hafen, die meine app auf im Inneren des Docker Container
  2. Hafen erwähnt in Kubernetes Konfigurationsdatei als containerPort
  3. LoadBalancer Port abhört, wenn der Einsatz als Dienst ausgesetzt

Was ist die Beziehung zwischen den oben genannten drei Ports? In meinem aktuellen Setup erwähne ich EXPOSE 8000 in meiner Dockerfile und containerPort: 8000 in kubernetes Konfigurationsdatei. Meine App überwacht den Port 8000 im Andock-Container. Wenn ich diesen Einsatz aussetzen kubectl expose deployment myapp --type="LoadBalancer" verwenden, führt dies in der folgenden Service -

$ kubectl get service 
NAME   CLUSTER-IP  EXTERNAL-IP PORT(S)   AGE 
myapp  10.59.248.232 <some-ip>  8000:32417/TCP 16s 

Aber meine curl nicht wie unten gezeigt -

$ curl http://<some-ip>:8000/status/ -i 
curl: (52) Empty reply from server 

Kann mir bitte jemand erklären, wie die drei oben genannten Ports zusammenarbeiten und Was sollten ihre Werte für eine erfolgreiche "Exposition" meiner App sein?

+0

Nur als Referenz. Ich beziehe diese Folien ziemlich oft. https://www.slideshare.net/CJCullen/kubernetes-networking-55835829. Slide hilft dabei, den Kern von docker networking und kubernetes networking zu verstehen. –

Antwort

0

Das Problem war mit meinem Django-Server und nicht Kubernetes oder Docker. Ich startete meinen Server mit python manage.py runserver anstelle von python manage.py runserver 0.0.0.0:8080, was dazu führte, dass es leere Antworten zurückgab, da die Anfragen nicht von localhost kamen.

Verwandte Themen