La réponse donnée ci-dessus par @Manikanta P est correcte. Cependant, l'explication de «Port» peut être un peu floue en première lecture. J'expliquerai avec un exemple:
Considérons une application Web avec son contenu statique (page d'accueil, images, etc.) hébergé par httpd et le contenu dynamique (par exemple, réponse aux demandes, etc.) hébergé par tomcat. Le serveur Web (ou le contenu statique) est servi par httpd au port 80
tandis qu'Appserver (ou le contenu dynamique) est servi par tomcat au port 8080
.
Ce que veut un développeur: l'utilisateur doit pouvoir accéder au serveur Web de l'extérieur MAIS pas au serveur d'applications de l'extérieur.
Solution: Le type de service de Webserver dans son service.yml sera NodePort tandis que le type de service d'Appserver dans son service.yml sera ClusterIP.
Code pour le service.yml du serveur Web:
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 pour le service.yml d'Appserver
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.
Notez également que dans le httpd.conf
fichier du serveur Web, nous écrirons l'adresse IP qui redirige la demande d'un utilisateur vers le serveur d'applications. Cette adresse IP sera: host_IP:5050
.
Que se passe-t-il exactement ici? Un utilisateur écrit hostIP:30475
et voit la page du serveur Web. C'est parce qu'il est servi par httpd au port 80
(targetport). Lorsqu'un utilisateur clique sur un bouton, une demande est effectuée. Cette requête est redirigée vers l'Appserver car dans le httpd.conf
fichier, le port 5050
est mentionné et c'est le port où le conteneur d'Appserver et le conteneur de Webserver communiquent en interne. Lorsque le serveur d'applications reçoit la demande, il est capable de servir la demande car Tomcat s'exécute à l'intérieur au port 8080
.