Introducción

Las políticas de red en Kubernetes permiten controlar el tráfico de red entre los pods dentro de un clúster. Estas políticas son esenciales para asegurar que solo el tráfico autorizado pueda fluir entre los diferentes componentes de una aplicación, mejorando así la seguridad y el aislamiento.

Conceptos Clave

Antes de profundizar en las políticas de red, es importante entender algunos conceptos clave:

  • Pod Selector: Define a qué pods se aplica la política.
  • Ingress: Controla el tráfico entrante a los pods seleccionados.
  • Egress: Controla el tráfico saliente desde los pods seleccionados.
  • Namespace: Las políticas de red son específicas de un namespace.

Creación de una Política de Red

Ejemplo Básico

A continuación, se muestra un ejemplo básico de una política de red que permite el tráfico entrante solo desde pods en el mismo namespace con una etiqueta específica.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-same-namespace
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Ingress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          role: frontend

Explicación del Ejemplo

  • apiVersion: La versión de la API de Kubernetes utilizada.
  • kind: Tipo de recurso, en este caso, NetworkPolicy.
  • metadata: Información sobre la política, incluyendo el nombre y el namespace.
  • spec: Especificaciones de la política.
    • podSelector: Selecciona los pods a los que se aplica la política. En este caso, los pods con la etiqueta role: db.
    • policyTypes: Define los tipos de tráfico que la política controla. Aquí, solo Ingress.
    • ingress: Define las reglas para el tráfico entrante.
      • from: Especifica las fuentes permitidas del tráfico entrante. En este caso, solo los pods con la etiqueta role: frontend.

Ejercicio Práctico

Ejercicio 1: Crear una Política de Red para Egress

Crea una política de red que permita el tráfico saliente solo a un servicio específico en otro namespace.

Solución

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-egress-to-service
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: backend
  policyTypes:
  - Egress
  egress:
  - to:
    - namespaceSelector:
        matchLabels:
          name: other-namespace
      podSelector:
        matchLabels:
          role: api

Explicación de la Solución

  • podSelector: Selecciona los pods con la etiqueta role: backend.
  • policyTypes: Define que la política controla el tráfico Egress.
  • egress: Define las reglas para el tráfico saliente.
    • to: Especifica los destinos permitidos del tráfico saliente. En este caso, los pods con la etiqueta role: api en el namespace other-namespace.

Errores Comunes y Consejos

Errores Comunes

  1. No especificar policyTypes: Si no se especifica policyTypes, la política no tendrá efecto.
  2. Selector de Pods Incorrecto: Asegúrate de que los selectores de pods coincidan con las etiquetas correctas.
  3. Namespace Incorrecto: Las políticas de red son específicas de un namespace. Asegúrate de que la política esté en el namespace correcto.

Consejos

  • Prueba tus políticas: Utiliza herramientas como kubectl para verificar que las políticas de red están funcionando como se espera.
  • Documenta tus políticas: Mantén una buena documentación de tus políticas de red para facilitar el mantenimiento y la comprensión.

Conclusión

Las políticas de red en Kubernetes son una herramienta poderosa para controlar el tráfico de red entre los pods. Al entender y aplicar correctamente estas políticas, puedes mejorar significativamente la seguridad y el aislamiento de tus aplicaciones. En el próximo módulo, exploraremos el almacenamiento en Kubernetes, comenzando con los volúmenes.

Curso de Kubernetes

Módulo 1: Introducción a Kubernetes

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

Módulo 8: Seguridad en Kubernetes

Módulo 9: Escalado y Rendimiento

Módulo 10: Ecosistema y Herramientas de Kubernetes

Módulo 11: Estudios de Caso y Aplicaciones del Mundo Real

Módulo 12: Preparación para la Certificación de Kubernetes

© Copyright 2024. Todos los derechos reservados