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 Google Cloud 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 que tu Google Cloud proyecto use 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 del 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 del 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 Google Cloud proyecto. Los grupos de nodos nuevos usan el nivel de red del 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 objetos Service 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 objetos Service LoadBalancer: los objetos Service LoadBalancer 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 objeto Service.
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 objeto Service 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 Gateway.
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 gcloud CLI. Si ya instalaste gcloud CLI, ejecuta el comando
gcloud components updatepara 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 del proyecto o del 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. Usanetwork-defaultpara el mismo parámetro de configuración de nivel que el de tu Google Cloud proyecto,Standardpara el nivel Estándar oPremiumpara 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:
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. Usanetwork-defaultpara el mismo parámetro de configuración de nivel que el de tu Google Cloud proyecto,Standardpara el nivel Estándar oPremiumpara el nivel Premium.
Crea grupos de nodos y servicios nuevos: para que los clientes externos usen las direcciones IP nuevas asociadas con el nivel de red nuevo, debes crear grupos de nodos nuevos y objetos Service LoadBalancer nuevos. Los grupos de nodos nuevos y los objetos Service 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.
Actualiza los registros DNS: cambia tus registros DNS para que apunten a las direcciones IP nuevas de los objetos Service LoadBalancer nuevos.
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
Para 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 se establece en 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 objeto Service. 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 objetos Service LoadBalancer, consulta Parámetros de objetos Service.
Dirección IP estática: cuando creas un objeto Service 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 objeto Service 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?
- Lee la descripción general de los Niveles de servicio de red.
- Obtén información para crear un balanceador de cargas externo basado en servicios de backend.