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
- Hafen, die meine app auf im Inneren des Docker Container
- Hafen erwähnt in Kubernetes Konfigurationsdatei als
containerPort
- 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?
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. –