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=2Una 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=NodePortCuando 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.

¡Saludos!
Si quieres seguir aprendiendo sobre contenedores, tienes una lista de vídeos en mi canal de YouTube 👇🏻
¿Qué son los contenedores? Docker desde cero para principiantes
Docker CLI: Comandos esenciales que todo developer debe conocer
Domina los Dockerfiles: De lo básico a multi-stage
4 formas de crear un Dockerfile sin empezar desde cero
¿No entiendes las redes en Docker? Mira este vídeo
Cómo NO perder tus datos en Docker: Guía definitiva
Deja de configurar contenedores a mano: Aprende Docker Compose 🐙
Cómo subir tus imágenes a Docker Hub (Guía paso a paso)
Publica y automatiza tus imágenes de Docker con GitHub


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?
Hola Edgar,
para el tipo NodePort el rango de puertos que tienes disponible es desde el 30000 al 32767, por lo que a priori no es posible publicarlo por el puerto 80 como quieres. Echa un vistazo a este otro artículo donde se utiliza Ingress: https://www.returngis.net/2020/05/configurar-un-ingress-controller-con-nginx-helm-y-nip-io/
Saludos!