Acceder a tus aplicaciones en Kubernetes a través de NodePort

Creo que está bien entender todas las posibilidades que Kubernetes te ofrece para exponer tus pods, antes de tomar una decisión. Ayer te conté cómo acceder a ellos a través de kubectl proxy, aunque ya te dije que este tipo de acceso es más para un modo depuración o bien el acceso interno a dashboards, como puede ser el caso de Kubernetes Dashboard. Hoy quiero explorar contigo una de las opciones más primitivas que es a través de NodePort.

NodePort

Como su propio nombre indica, NodePort es el acceso a través de un puerto de los nodos, que son las máquinas que forman tu clúster. Vamos a verlo con un ejemplo:

Hoy vamos a utilizar la imagen aspnetapp que está en la cuenta de Microsoft de Docker Hub. Creamos un pod con dos réplicas que escuchan por el puerto 80.

kubectl run aspnetapp \
--image=mcr.microsoft.com/dotnet/core/samples:aspnetapp \
--port=80 \
--replicas=2

Una vez que el despliegue se está ejecutando correctamente, (puedes comprobarlo a través de kubectl get deployments) vamos a exponer la aplicación a través de un servicio del tipo NodePort:

kubectl expose deployment aspnetapp --type=NodePort

Cuando exponemos un servicio utilizando este tipo, nuestro clúster nos asignará un puerto entre el rango 30000–32767. Para saber qué puerto nos ha sido asignado en los nodos, podemos lanzar el comando kubectl get services.

En mi caso estoy trabajando con las IPs 192.168.1.48 (master), 192.168.1.49 (nodo1) y 192.168.1.51 (nodo2) para mis nodos. Si ahora accedo a través del navegador a cualquiera de ellos, especificando el puerto 30207 accederé a mi aplicación aspnetapp.

Accediendo a mi app a través de NodePort – puerto 30207

¡Saludos!

Si quieres seguir aprendiendo sobre contenedores, tienes una lista de vídeos en mi canal de YouTube 👇🏻

2 Comments

  1. Edgar Lagonell mayo 20, 2021 at 2:39 am

    Una pregunta si quisiera que se expusiera solo por el pueto 80 ¿Qué tendría que hacer?, es decir si en tu ejemplo quisiera solo acceder a a la aplicación por el http://192.168.48 — (SIN PUERTO) ¿Que debo configurar?

    Reply

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.