Capítulo 4.1 - Introducción a los Servicios
Objetivos de Aprendizaje
Al final de este capítulo, usted será capaz de:
- Comprender el problema que resuelven los Servicios
- Explicar el rol de los Servicios
- Comprender cómo funcionan los Servicios
- Crear un Servicio simple
El Problema
Los Pods tienen IPs efímeras que cambian:
Problemas:
- Las IPs cambian cuando los Pods se reinician
- ¿Cómo encontrar los Pods backend?
- ¿Cómo equilibrar la carga?
La Solución: Servicios
Un Servicio expone un conjunto de Pods como un servicio de red con una IP estable:
Ventajas:
- IP estable
- Balanceo de carga automático
- Descubrimiento de servicios
- Abstracción de los Pods backend
¿Cómo Funciona?
Selectors
El Servicio utiliza selectors para encontrar los Pods:
apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
selector:
app: web
tier: frontend
ports:
- port: 80
targetPort: 8080
Declaración YAML
apiVersion: v1
kind: Service
metadata:
name: my-service
labels:
app: my-app
spec:
selector:
app: my-app
tier: frontend
ports:
- protocol: TCP
port: 80 # Puerto del Servicio
targetPort: 8080 # Puerto del contenedor
type: ClusterIP # Tipo de Servicio
Comandos Útiles
# Crear un Servicio
kubectl apply -f service.yaml
# Listar los Servicios
kubectl get services
# Detalles de un Servicio
kubectl describe service my-service
# Ver los Endpoints
kubectl get endpoints my-service
# Eliminar un Servicio
kubectl delete service my-service
Resumen
En este capítulo, usted ha aprendido:
Problema: IPs efímeras de los Pods
Solución: Servicios con IP estable
Selectors: Identificar los Pods backend
Load Balancing: Automático entre los Pods
Abstracción: Los clientes no necesitan conocer los Pods
Próximos Pasos
Ahora que usted comprende los Servicios:
Capítulo 4.2: Tipos de Servicios
Lab 4.1: Servicios ClusterIP y NodePort
Capítulo creado el: Diciembre 2024