En este módulo, exploraremos cómo Kubernetes maneja la red dentro de un clúster. La red de clúster es fundamental para la comunicación entre los diferentes componentes y servicios que se ejecutan en Kubernetes. A continuación, desglosaremos los conceptos clave, ejemplos prácticos y ejercicios para ayudarte a comprender y manejar las redes en Kubernetes.
Conceptos Clave
-
Modelo de Red de Kubernetes:
- Cada Pod en un clúster tiene una dirección IP única.
- Los Pods pueden comunicarse entre sí sin necesidad de NAT.
- Los nodos pueden comunicarse con todos los Pods sin necesidad de NAT.
- Las aplicaciones dentro de los Pods pueden comunicarse con otros Pods utilizando sus direcciones IP.
-
Componentes de Red:
- CNI (Container Network Interface): Especifica cómo los contenedores se conectan a la red.
- Kube-proxy: Mantiene las reglas de red en los nodos y permite la comunicación de red para los servicios de Kubernetes.
-
Plugins de Red:
- Flannel: Proporciona una red de superposición simple.
- Calico: Ofrece redes de contenedores y políticas de red.
- Weave: Facilita la creación de redes de contenedores con características avanzadas.
Ejemplo Práctico: Configuración de Flannel
Paso 1: Instalar Flannel
Primero, asegúrate de que tu clúster de Kubernetes esté configurado. Luego, aplica el manifiesto de Flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Paso 2: Verificar la Instalación
Verifica que los Pods de Flannel estén en ejecución:
Deberías ver algo similar a:
Paso 3: Probar la Conectividad
Crea dos Pods y verifica que pueden comunicarse entre sí:
apiVersion: v1
kind: Pod
metadata:
name: pod1
spec:
containers:
- name: busybox
image: busybox
command: ['sh', '-c', 'sleep 3600']
---
apiVersion: v1
kind: Pod
metadata:
name: pod2
spec:
containers:
- name: busybox
image: busybox
command: ['sh', '-c', 'sleep 3600']Aplica el manifiesto:
Verifica la conectividad:
Deberías ver una respuesta de pod2, confirmando que la red está funcionando.
Ejercicio Práctico
Ejercicio 1: Configuración de Calico
-
Instalar Calico:
- Aplica el manifiesto de Calico:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml -
Verificar la Instalación:
- Asegúrate de que los Pods de Calico estén en ejecución:
kubectl get pods -n kube-system -l k8s-app=calico-node -
Probar la Conectividad:
- Crea dos Pods y verifica que pueden comunicarse entre sí, similar al ejemplo de Flannel.
Solución
-
Instalar Calico:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml -
Verificar la Instalación:
kubectl get pods -n kube-system -l k8s-app=calico-nodeDeberías ver algo similar a:
NAME READY STATUS RESTARTS AGE calico-node-xxxxx 1/1 Running 0 2m -
Probar la Conectividad:
Crea dos Pods y verifica la conectividad:
apiVersion: v1 kind: Pod metadata: name: pod1 spec: containers: - name: busybox image: busybox command: ['sh', '-c', 'sleep 3600'] --- apiVersion: v1 kind: Pod metadata: name: pod2 spec: containers: - name: busybox image: busybox command: ['sh', '-c', 'sleep 3600']Aplica el manifiesto:
kubectl apply -f pods.yamlVerifica la conectividad:
kubectl exec pod1 -- ping -c 3 pod2Deberías ver una respuesta de
pod2, confirmando que la red está funcionando.
Resumen
En esta sección, hemos cubierto los conceptos básicos de la red de clúster en Kubernetes, incluyendo el modelo de red, los componentes y los plugins de red más comunes. También hemos proporcionado ejemplos prácticos y ejercicios para ayudarte a configurar y verificar la conectividad de red en tu clúster de Kubernetes. Con esta base, estarás preparado para explorar temas más avanzados de redes en Kubernetes.
Curso de Kubernetes
Módulo 1: Introducción a Kubernetes
- ¿Qué es Kubernetes?
- Arquitectura de Kubernetes
- Conceptos y Terminología Clave
- Configuración de un Clúster de Kubernetes
- CLI de Kubernetes (kubectl)
Módulo 2: Componentes Principales de Kubernetes
Módulo 3: Gestión de Configuración y Secretos
Módulo 4: Redes en Kubernetes
Módulo 5: Almacenamiento en Kubernetes
Módulo 6: Conceptos Avanzados de Kubernetes
Módulo 7: Monitoreo y Registro
- Monitoreo con Prometheus
- Registro con Elasticsearch, Fluentd y Kibana (EFK)
- Verificaciones de Salud y Sondas
- Servidor de Métricas
Módulo 8: Seguridad en Kubernetes
- Control de Acceso Basado en Roles (RBAC)
- Políticas de Seguridad de Pods
- Seguridad de Red
- Seguridad de Imágenes
Módulo 9: Escalado y Rendimiento
- Autoescalado Horizontal de Pods
- Autoescalado Vertical de Pods
- Autoescalado de Clúster
- Ajuste de Rendimiento
Módulo 10: Ecosistema y Herramientas de Kubernetes
Módulo 11: Estudios de Caso y Aplicaciones del Mundo Real
- Despliegue de una Aplicación Web
- CI/CD con Kubernetes
- Ejecución de Aplicaciones con Estado
- Gestión Multi-Clúster
