es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se puede controlar el tráfico de red dentro de un clúster GKE donde la función de política de red está deshabilitada sin recrear todos los grupos de nodos?

Estoy ejecutando la versión 1.20 del clúster de GKE en la que están desactivadas las funciones de Dataplane V2 y Network Policy.

Según la documentación de GKE, habilitar la función de Network Policy en clústeres no basados en Dataplane V2 requiere la recreación de todos los grupos de nodos.

Mi clúster tiene dos grupos de nodos para diversas cargas de trabajo y quiero asegurarme de que el pod A pueda comunicarse solo con el pod B, ambos en el mismo grupo de nodos, sin recrear el otro grupo de nodos.

También quiero evitar lograr esto utilizando soluciones basadas en el sistema operativo como Linux iptables o soluciones basadas en GCP como reglas de firewall de VPC. Debe ser una solución interna al clúster.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr la comunicación entre el pod A y el pod B dentro del mismo pool de nodos sin habilitar la función Network Policy y sin recrear todos los pools de nodos, puedes utilizar una solución de política de red de Kubernetes como Calico. Calico te permite definir políticas de red utilizando la API de Kubernetes y proporciona un complemento de red seguro que aplica las políticas de red en los contenedores.

    Primero, instala Calico siguiendo las instrucciones aquí: https://docs.projectcalico.org/getting-started/kubernetes/quickstart.

    Luego, crea una política de red que solo permita que el pod A se comunique con el pod B en el mismo pool de nodos. Esto se puede hacer utilizando el comando kubectl para aplicar el archivo YAML de la política de red que define la política. Por ejemplo, el archivo YAML de la política podría verse así:

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: allow-pod-a-to-pod-b
    spec:
      podSelector:
        matchLabels:
          app: pod-a
      policyTypes:
      - Ingress
      ingress:
      - from:
        - podSelector:
            matchLabels:
              app: pod-b
    

    Esta política permite el tráfico de ingreso desde cualquier pod con la etiqueta app: pod-b a los pods con la etiqueta app: pod-a.

    Finalmente, etiqueta el pod A y el pod B con las respectivas etiquetas app: pod-a y app: pod-b. Luego, puedes verificar que el tráfico del pod A al pod B esté permitido, mientras que el tráfico del pod A a otros pods en un pool de nodos diferente está bloqueado.

    Esta solución proporciona una solución de política de red dentro del clúster que no requiere habilitar la función Network Policy ni recrear todos los pools de nodos.

Comments are closed.