Die oben von @Manikanta P gegebene Antwort ist richtig. Die Erklärung von "Port" könnte jedoch in der ersten Lesung etwas unklar sein. Ich werde mit einem Beispiel erklären:
Betrachten Sie eine Webanwendung mit ihrem statischen Inhalt (Startseite, Bilder usw.), der von httpd gehostet wird, und dem dynamischen Inhalt (z. B. Antwort auf Anfragen usw.), der von Tomcat gehostet wird. Der Webserver (oder der statische Inhalt) wird von httpd am Port 80
bereitgestellt, während der Appserver (oder der dynamische Inhalt) von tomcat am Port bereitgestellt wird8080
.
Was ein Entwickler möchte: Der Benutzer sollte von außerhalb auf den Webserver zugreifen können, ABER nicht von außen auf den Appserver.
Lösung: Der Diensttyp des Webservers in seiner service.yml ist NodePort, während der Diensttyp des Appservers in seiner service.yml ClusterIP ist.
Code für die service.yml des Webservers:
spec:
selector:
app: Webserver
type: NodePort // written to make this service accessible from outside.
ports:
- nodePort: 30475 // To access from outside, type <host_IP>:30475 in browser.
port: 5050 // (ignore for now, I will explain below).
protocol: TCP
targetPort: 80 // port where httpd runs inside the webserver pod.
Code für Appservers service.yml
spec:
selector:
app: appserver
type: ClusterIP // written to make this service NOT accessible from outside.
ports:
- port: 5050 // port to access this container internally
protocol: TCP
targetPort: 8080 // port where tomcat runs inside the appserver pod.
Beachten Sie auch, httpd.conf
dass wir in die Datei des Webservers die IP schreiben, die die Anforderung eines Benutzers an den Appserver umleitet. Diese IP lautet : host_IP:5050
.
Was genau passiert hier? Ein Benutzer schreibt hostIP:30475
und sieht die Seite des Webservers. Dies liegt daran, dass es von httpd am Port 80
(Zielport) bereitgestellt wird. Wenn ein Benutzer auf eine Schaltfläche klickt, wird eine Anfrage gestellt. Diese Anforderung wird an den Appserver umgeleitet, da in der httpd.conf
Datei der Port 5050
erwähnt wird und dies der Port ist, an dem der Container des Appservers und der Conatainer des Webservers intern kommunizieren. Wenn der App-Server die Anforderung empfängt, kann er die Anforderung bearbeiten, da Tomcat am Port ausgeführt wird 8080
.