Usa Dataplane V2

En esta página, se explica Dataplane V2 para Google Kubernetes Engine (GKE).

Acerca de Dataplane V2

Dataplane V2 se basa en eBPF y permite que los nodos de Linux procesen de forma flexible y eficiente los paquetes de red en el kernel. Dataplane V2 incluye la aplicación incorporada de las políticas de red y el registro de políticas de red sin ningún complemento de terceros.

Para usar el registro de políticas de red, debes habilitar Dataplane V2 en tu clúster de GKE. Para obtener instrucciones, consulta la sección Crea un clúster con Dataplane V2.

Limitaciones

  • Solo se puede habilitar Dataplane V2 en clústeres nuevos. Los clústeres existentes no pueden actualizarse para usar Dataplane V2.
  • Los nodos de Windows no son compatibles con Dataplane V2.

Limitaciones de la versión beta

  • Mientras Dataplane V2 se encuentra en versión beta, no se garantiza la retrocompatibilidad. Es posible que tengas que volver a crear un clúster mediante Dataplane V2 cuando esté disponible una versión nueva de Dataplane V2.
  • Se sabe que algunas funciones de Kubernetes y GKE no funcionan en versión Beta:
    • Los servicios de Kubernetes que configuran ExternalTrafficPolicy:local y están respaldados por Pods que se ejecutan con hostNetwork:true no pueden recibir tráfico de clientes fuera del clúster.
    • No funcionan las políticas de red de Kubernetes que usan FromCIDR con rangos CIDR que seleccionan solo algunas direcciones IP de nodos.
    • Algunas funciones, incluida NodeLocal DNSCache, no son compatibles.
  • No existe una interfaz de Google Cloud Console para Dataplane V2.

Crea un clúster de GKE con Dataplane V2

Puedes habilitar Dataplane V2 cuando creas clústeres nuevos con GKE 1.17.9 y versiones posteriores.

.

gcloud

Para crear un clúster nuevo con Dataplane V2, usa el siguiente comando:

gcloud beta container clusters create cluster-name \
    --enable-dataplane-v2 \
    --enable-ip-alias \
    --cluster-version version \
    --release-channel channel-name \
    {--region region-name | --zone zone-name}

Reemplaza los siguientes elementos:

  • cluster-name: Es el nombre del clúster nuevo.
  • version: Es tu versión del clúster, que debe ser GKE 1.17.9 o posterior.
  • channel-name: Es un canal de versiones que incluye la versión 1.17.9 o posterior de GKE.
  • region-name o zone-name: Es la ubicación del clúster. Estos argumentos son mutuamente excluyentes. Consulta Tipos de clústeres para obtener más información.

API

Para crear un clúster nuevo con Dataplane V2, especifica el campo datapathProvider en el objeto networkConfig, en la solicitud create del clúster.

En el siguiente fragmento de código JSON, se muestra la configuración necesaria para habilitar Dataplane V2:

"cluster":{
  "initialClusterVersion":"version",
  "ipAllocationPolicy":{
     "useIpAliases":true
  },
  "networkConfig":{
     "datapathProvider":"ADVANCED_DATAPATH"
  },
  "releaseChannel":{
     "channel":"channel-name"
  }
}

Reemplaza los siguientes elementos:

  • version: Es tu versión del clúster, que debe ser GKE 1.17.9 o posterior.
  • channel-name: Es un canal de versiones que incluye la versión 1.17.9 o posterior de GKE.

Soluciona problemas

  1. Comprueba el estado de los Pods del sistema:

    kubectl -n kube-system get pods
    

    Si Dataplane V2 está en ejecución, verás Pods con el prefijo anetd- que se ejecutan en el estado HEALTHY. anetd es el controlador de Herramientas de redes para Dataplane V2.

  2. Si el problema es con los servicios o la aplicación de la política de red, verifica los registros del Pod anetd:

    kubectl -n kube-system describe pod anetd-pod
    kubectl -n kube-system logs anetd-pod
    

    Reemplaza anetd-pod por el nombre de un Pod anetd identificado con anterioridad.

  3. Si falla la creación de un Pod, revisa los registros de kubelet para obtener pistas:

    gcloud compute ssh node -- sudo journalctl -u kubelet
    

    Reemplaza node con el nombre de la instancia de VM.

Próximos pasos