0Pricing
DevOps Bootcamp · Lección

Tipos de Service: ClusterIP, NodePort y LoadBalancer

Aprenda las distintas formas de exponer Services dentro y fuera de su clúster de Kubernetes.

Tipos de Service: ClusterIP, NodePort y LoadBalancer es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Necesidades de exposición de los Services

En Kubernetes, los Pods son efímeros y tienen direcciones IP dinámicas. Los Services proporcionan acceso de red estable a sus aplicaciones. Pero ¿cómo puede exponerlos?

Según si su aplicación debe ser accesible desde dentro o fuera del clúster, y de qué manera, Kubernetes ofrece distintos tipos de Service. ¡Exploremos los tres principales!

ClusterIP: acceso interno

ClusterIP es el tipo de Service predeterminado. Proporciona a su Service una dirección IP interna estable, accesible únicamente desde dentro del clúster de Kubernetes.

  • Los Pods pueden acceder a otros Pods mediante estas ClusterIP y el nombre del Service.
  • Es perfecto para Services de backend que no necesitan exposición externa directa.
  • Considérelo como un balanceador de carga interno para sus Pods.

YAML de un Service ClusterIP

Así se define un Service de tipo ClusterIP. Observe el campo type: ClusterIP, aunque es opcional porque es el valor predeterminado.

apiVersion: v1
kind: Service
metadata:
  name: my-internal-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

Acceso a Services ClusterIP

Una vez implementado, Kubernetes asigna automáticamente a este Service una dirección IP interna única (la ClusterIP). Luego, otros Pods pueden usar el nombre del Service (por ejemplo, my-internal-service) o su IP para conectarse.

El servicio DNS de Kubernetes resuelve el nombre del Service en su ClusterIP, lo que facilita una comunicación interna sencilla y confiable.

NodePort: acceso externo

¿Qué ocurre si necesita acceder a su aplicación desde fuera del clúster? Ahí es donde entra en juego NodePort.

Un Service NodePort expone su aplicación en un puerto estático en la dirección IP de cada nodo del clúster. Todo el tráfico enviado a NodeIP:NodePort se enrutará a su Service.

  • Es útil para el desarrollo y las implementaciones pequeñas.
  • NodePort suele estar en el rango 30000-32767.

YAML de un Service NodePort

Para crear un Service NodePort, establezca explícitamente type: NodePort. Si no especifica ningún puerto, Kubernetes elegirá automáticamente uno disponible dentro del rango de NodePort.

apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30080 # Optional: K8s picks if omitted
  type: NodePort

Conexión mediante NodePort

Después de implementar un Service NodePort, puede acceder a su aplicación desde fuera del clúster mediante <AnyNodeIP>:<NodePort>.

Por ejemplo, si la IP de un nodo es 192.168.1.100 y el NodePort asignado es 30080, puede acceder a su aplicación en http://192.168.1.100:30080.

LoadBalancer: integración con la nube

Para entornos de producción en proveedores cloud (AWS, GCP, Azure), suele preferirse el tipo de Service LoadBalancer. Este aprovisiona automáticamente un balanceador de carga externo en la nube.

Este balanceador de carga obtiene una dirección IP pública y distribuye el tráfico externo a los Pods de su Service. Se encarga de todo el enrutamiento complejo por usted.

YAML de un Service LoadBalancer

Definir un Service LoadBalancer es sencillo. Su proveedor cloud se encarga del trabajo pesado de aprovisionar el balanceador de carga externo.

apiVersion: v1
kind: Service
metadata:
  name: my-loadbalancer-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer

Acceso externo con LoadBalancer

Una vez implementado, su proveedor cloud creará un balanceador de carga dedicado y le asignará una dirección IP externa o un nombre de host. Después podrá usar este endpoint público para acceder a su aplicación.

Esto proporciona una forma sólida, escalable y de alta disponibilidad de exponer sus Services a Internet.

Comprobación rápida: tipos de Service

¿Qué tipos de Service de Kubernetes permiten el acceso externo directo a su aplicación desde fuera del clúster?

Recapitulación: elegir su Service

Ha aprendido sobre los tres tipos principales de Service de Kubernetes:

  • ClusterIP: Para acceder únicamente desde dentro del clúster.
  • NodePort: Expone los Services en un puerto estático de la IP de cada nodo, lo que permite el acceso externo.
  • LoadBalancer: Se integra con proveedores cloud para aprovisionar un balanceador de carga externo con una IP pública.

Elija el tipo adecuado según las necesidades de exposición de su aplicación y su entorno de implementación.

Preguntas frecuentes

¿La lección «Tipos de Service: ClusterIP, NodePort y LoadBalancer» es gratis?

Sí — el texto completo de «Tipos de Service: ClusterIP, NodePort y LoadBalancer» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Tipos de Service: ClusterIP, NodePort y LoadBalancer»?

Aprenda las distintas formas de exponer Services dentro y fuera de su clúster de Kubernetes. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Tipos de Service: ClusterIP, NodePort y LoadBalancer»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Exposición de aplicaciones con Services
  2. Tipos de Service: ClusterIP, NodePort y LoadBalancer
  3. Ingress para acceso externo
  4. DNS y descubrimiento de servicios
← Volver a DevOps Bootcamp