Configura políticas de red de varias redes


En esta página, se explica cómo controlar el flujo de tráfico entre Pods y Services a nivel de Pod mediante la configuración de políticas de red de varias redes que se aplican de forma específica a una red de Pod designada.

Como administrador del clúster, puedes configurar políticas de red de varias redes para controlar el flujo de tráfico entre Pods y Services mediante reglas de firewall a nivel de Pod. Puedes mejorar la seguridad de la red y el control de tráfico dentro de tu clúster.

Para comprender cómo funcionan las políticas de red de varias redes, consulta cómo funcionan las políticas de red con las redes de Pods.

Requisitos

Para usar políticas de red de varias redes, considera los siguientes requisitos:

  • Google Cloud CLI versión 459 y posteriores.
  • Debes tener un clúster de GKE que ejecute una de las siguientes versiones:
    • 1.28.5-gke.1293000 o superior
    • 1.29.0-gke.1484000 o superior
  • Tu clúster debe usar GKE Dataplane V2.

Limitaciones

La política de red FQDN y la política de red de CiliumClusterWide no son compatibles: si usas la política de red FQDN y la política de red de CiliumClusterWide en un Pod conectado a varias redes, la política afecta a todas las conexiones del Pod y no solo a las que se aplican las políticas.

Precios

Las siguientes funciones de Network Function Optimizer (NFO) solo se admiten en clústeres que están en proyectos habilitados con GKE Enterprise:

Para comprender los cargos que se aplican por habilitar la edición Google Kubernetes Engine (GKE) Enterprise, consulta Precios de GKE Enterprise.

Configura políticas de red de varias redes

Para usar políticas de red de varias redes, haz lo siguiente:

  1. Crea un clúster con GKE con varias redes habilitadas .
  2. Crea un grupo de nodos y una red de Pods.
  3. Haz referencia a la red de Pods.
  4. Crea una política de red para aplicar de manera forzosa que haga referencia a la misma red de Pods que usa la carga de trabajo.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Crea una política de red

  1. Para crear una política de red que aplique reglas en la misma red de Pods que tu carga de trabajo, haz referencia a la red de Pods específica en la definición de la política de red.

  2. Para definir las reglas de tráfico de entrada seleccionadas y los Pods de destino en función de las etiquetas o de otros selectores, crea una política de red estándar.

    Guarda el siguiente manifiesto de muestra como sample-ingress-network-policy1.yaml:

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: sample-network-policy
      namespace: default
      annotations:
        networking.gke.io/network: blue-pod-network  # GKE-specific annotation for network selection
    spec:
      podSelector:
        matchLabels:
          app: test-app-2  # Selects pods with the label "app: test-app-2"
      policyTypes:
      - Ingress  # Specifies the policy applies only to incoming traffic
      ingress:
      - from:  # Allow incoming traffic only from...
        - podSelector:
            matchLabels:
              app: test-app-1  # ...pods with the label "app: test-app-1"
    
  3. Aplica el manifiesto sample-ingress-network-policy1.yaml:

    kubectl apply -f sample-ingress-network-policy1.yaml
    
  4. Para definir las reglas de tráfico de salida seleccionadas y los Pods de destino en función de las etiquetas o de otros selectores, crea una política de red estándar.

    Guarda el siguiente manifiesto de muestra como sample-egress-network-policy2.yaml:

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: sample-network-policy-2
      namespace: default
      annotations:
        networking.gke.io/network: blue-pod-network  # GKE-specific annotation (optional)
    spec:
      podSelector:
        matchLabels:
          app: test-app-2
      policyTypes:
        - Egress  # Only applies to outgoing traffic
      egress:
        - to:
            - podSelector:
                matchLabels:
                  app: test-app-3
    
  5. Aplica el manifiesto sample-egress-network-policy2.yaml:

    kubectl apply -f sample-egress-network-policy2.yaml
    

Soluciona problemas de políticas de red de varias redes

Si tienes problemas con las políticas de red, ya sea que se apliquen a redes de Pods específicas o no, puedes diagnosticar y solucionar el problema mediante la ejecución de los siguientes comandos:

  1. kubectl get networkpolicy: enumera todos los objetos de la política de red y la información sobre ellos.
  2. iptables-save: recupera y enumera todas las cadenas de tablas de direcciones IP de un nodo en particular. Debes ejecutar este comando en el nodo como raíz.
  3. cilium bpf policy get <endpoint-id>: recupera y enumera las direcciones IP permitidas del mapa de políticas de cada extremo.
  4. cilium policy selectors: imprime las identidades y las políticas asociadas que las seleccionaron.
  5. cilium identity list: muestra las asignaciones de identidad a dirección IP.

¿Qué sigue?