Configura el tráfico externo con niveles de servicio de red

En esta página, se muestra cómo controlar la forma en que el tráfico externo llega a tus servicios en clústeres de Google Kubernetes Engine (GKE) mediante los Niveles de servicio de red. Los Niveles de servicio de red te permiten optimizar el tráfico de red para mejorar el rendimiento (nivel Premium) o ahorrar costos (nivel Estándar).

El nivel Premium canaliza el tráfico en la red troncal premium de Google para ofrecer una velocidad y confiabilidad superiores. Por el contrario, el nivel Estándar usa redes de proveedores de servicios de Internet (ISP) comunes que ofrecen una solución más rentable.

Esta página está dirigida a arquitectos de nube y especialistas en herramientas de redes que diseñan la red para su organización. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el Cloud de Confiance by S3NS contenido de, consulta Roles y tareas comunes del usuario de GKE.

Cómo funcionan los Niveles de servicio de red en GKE

En esta sección, se muestra cómo administrar los Niveles de servicio de red en GKE.

  • Establece un nivel de red en el nivel del proyecto: puedes establecer el nivel de red predeterminado para tu Cloud de Confiance by S3NS proyecto para usar el nivel Estándar o el nivel Premium. Todos los clústeres nuevos se crean con el parámetro de configuración network-default, que hereda el parámetro de configuración de nivel de proyecto. Este parámetro de configuración persiste durante las actualizaciones del clúster. Los grupos de nodos creados dentro del clúster heredan el nivel de red de la configuración de nivel de proyecto.

  • Establece un nivel de red cuando crees clústeres nuevos: Puedes configurar el nivel de red cuando crees un clúster nuevo, independientemente del parámetro de configuración de nivel en tu Cloud de Confiance by S3NS proyecto. Los grupos de nodos nuevos usan el nivel de red de nivel de clúster, y esta configuración persiste incluso después de actualizar los grupos de nodos.

  • Establece un nivel de red cuando actualices clústeres: Puedes configurar el nivel de red cuando actualices un clúster existente. Los grupos de nodos nuevos y los servicios LoadBalancer nuevos heredan la configuración de nivel actualizada, mientras que los grupos de nodos y los servicios existentes continúan usando la configuración de nivel de red original. La configuración de nivel actualizada persiste después de actualizar el clúster.

  • Establece un nivel de red cuando actualices los servicios LoadBalancer: LoadBalancer Services heredan el nivel de red del clúster. Sin embargo, puedes anular este parámetro de configuración y actualizar el nivel de red en el manifiesto del servicio.

Niveles de servicio de red y balanceo de cargas

De forma predeterminada, los balanceadores de cargas de red de transferencia externos usan el nivel Premium. Puedes actualizar esta configuración para que el servicio LoadBalancer use el nivel Estándar en su lugar.

Si usas balanceadores de cargas de aplicaciones con Gateway, no puedes configurar los Niveles de servicio de red. Los Niveles de servicio de red en Gateway se controlan con el recurso GatewayClass. Para obtener más información, consulta Dirección IP de la puerta de enlace.

Ingress para balanceadores de cargas de aplicaciones externos de GKE no admite el nivel Estándar para el enrutamiento de tráfico.

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 the gcloud CLI. Si ya instalaste gcloud CLI, ejecuta el comando gcloud components update para obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos de este documento.

Restricciones

Se aplican las siguientes restricciones:

  • Puedes configurar los parámetros de configuración del nivel de red solo en el nivel de proyecto o de clúster. No puedes configurar el nivel de red de los grupos de nodos directamente.
  • El nivel Estándar no es compatible con las direcciones IPv4 o IPv6 externas globales de pila doble. Para obtener más información sobre los tipos de direcciones IP, consulta Direcciones IP.

Crea un clúster con Niveles de servicio de red

Para crear un clúster y especificar el nivel de red, ejecuta el siguiente comando:

 gcloud container clusters create CLUSTER_NAME \
     --network-tier=NETWORK_TIER \
     ...

Reemplaza los siguientes valores:

  • CLUSTER_NAME: El nombre de tu clúster.
  • NETWORK_TIER: El parámetro de configuración del nivel de red. Usa network-default para el mismo parámetro de configuración de nivel que el de tu Cloud de Confiance by S3NS proyecto, Standard para el nivel Estándar o Premium para el nivel Premium.

Migra un clúster existente a un nivel diferente

La actualización del nivel de red de un clúster no afecta el nivel de red de los recursos existentes. Los recursos existentes continúan usando la dirección IP asociada con el nivel de red anterior. Para evitar interrupciones del servicio, sigue estos pasos cuando migres tu clúster a un nivel de red nuevo:

  1. Actualiza el clúster: Para actualizar un clúster existente con un nivel de red, ejecuta el siguiente comando:

    gcloud container clusters update CLUSTER_NAME \
        --network-tier=NETWORK_TIER \
        ...
    

    Reemplaza los siguientes valores:

    • CLUSTER_NAME: El nombre de tu clúster.
    • NETWORK_TIER: El parámetro de configuración del nivel de red. Usa network-default para el mismo parámetro de configuración de nivel que el de tu Cloud de Confiance by S3NS proyecto, Standard para el nivel Estándar o Premium para el nivel Premium.
  2. Crea grupos de nodos y servicios nuevos: Para que los clientes externos usen las nuevas direcciones IP asociadas con el nuevo nivel de red, debes crear grupos de nodos y servicios LoadBalancer nuevos. Los grupos de nodos nuevos y los servicios LoadBalancer nuevos heredan la configuración de nivel actualizada, mientras que los grupos de nodos y los servicios existentes continúan usando la configuración de nivel de red original.

  3. Actualiza los registros DNS: cambia tus registros DNS para que apunten a las nuevas direcciones IP de los nuevos servicios LoadBalancer.

  4. Espera a que se propaguen los DNS: Espera a que venza el tiempo de actividad (TTL) de DNS para asegurarte de que los clientes se dirijan a los servicios nuevos y evitar la entrega de registros obsoletos.

Actualiza un balanceador de cargas externo con Niveles de servicio de red

En el caso de los balanceadores de cargas de red de transferencia externos, GKE usa de forma predeterminada el nivel de red configurado en el clúster para la regla de reenvío externa y la dirección IP. Si el nivel de red del clúster está configurado como network-default, el balanceador de cargas usa el nivel Premium. Puedes anular este parámetro de configuración si configuras la anotación cloud.google.com/network-tier en el manifiesto del servicio. Por ejemplo:

    ```yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: store-v1-lb-svc
      annotations:
        cloud.google.com/network-tier: Standard
    spec:
      type: LoadBalancer
      loadBalancerClass: networking.gke.io/l4-regional-external
      selector:
        app: store
      ports:
      - name: tcp-port
        protocol: TCP
        port: 8080
        targetPort: 8080
    ```

Para obtener más información sobre los parámetros que se usan para los servicios LoadBalancer, consulta Parámetros de servicio.

Dirección IP estática: Cuando creas un servicio con una dirección IP estática, el nivel de red de la dirección IP estática debe coincidir con el nivel de red del servicio LoadBalancer. Si hay una falta de coincidencia, verás el siguiente mensaje de error cuando ejecutes el comando kubectl describe service:

Error syncing load balancer: failed to ensure load balancer: requested ip "standard-service" is neither static nor assigned to the LB

¿Qué sigue?