Crea un clúster basado en rutas


En esta página, se muestra cómo crear un clúster basado en rutas en Google Kubernetes Engine (GKE).

Descripción general

En GKE, los clústeres se pueden distinguir de acuerdo con la forma en la que enrutan el tráfico de un pod a otro. Un clúster que usa rutas de Google Cloud se denomina clúster basado en rutas. Un clúster que usa IP de alias se denomina clúster nativo de la VPC.

Nativo de la VPC es el tipo recomendado y es el predeterminado para los clústeres nuevos en las versiones de GKE 1.21.0-gke.1500 y posteriores. Si quieres crear un clúster basado en rutas, debes desactivar de manera explícita la opción VPC nativa.

Antes de comenzar

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

  • Habilita la API de Kubernetes Engine de Google.
  • Habilitar la API de Kubernetes Engine de Google
  • 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 un clúster basado en rutas

Puedes crear un clúster basado en rutas con la CLI de gcloud o la consola de Google Cloud.

gcloud

Si quieres crear un clúster basado en rutas, incluye la marca --no-enable-ip-alias en el comando de creación del clústeres:

gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias

Reemplaza CLUSTER_NAME por un nombre que elijas para el clúster.

Console

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Ingresa un nombre para tu clúster.

  4. En el panel de navegación, en Clúster, haz clic en Herramientas de redes.

  5. En Opciones avanzadas de redes, desmarca la casilla de verificación Habilitar enrutamiento de tráfico nativo de la VPC (con alias de IP).

  6. Haz clic en Crear.

Crea un clúster basado en rutas y selecciona el rango de IP del plano de control

De forma predeterminada, los clústeres con Private Service Connect usan el rango de subred principal para aprovisionar la dirección IP interna asignada al extremo del plano de control. Puedes anular esta configuración predeterminada si seleccionas un rango de subred diferente solo durante la creación del clúster. En las siguientes secciones, se muestra cómo crear un clúster con Private Service Connect y anular el rango de subred.

gcloud

Crea un clúster con Private Service Connect:

gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias \
    --private-endpoint-subnetwork=SUBNET_NAME \
    --region=COMPUTE_REGION

Reemplaza lo siguiente:

  • CLUSTER_NAME es el nombre del clúster de GKE.
  • SUBNET_NAME: Es el nombre de una subred existente.
  • COMPUTE_REGION: es la región de procesamiento para el clúster. Para crear un clúster zonal, reemplaza esta marca por --zone=COMPUTE_ZONE, en la que COMPUTE_ZONE es una zona de GKE.

Consola

Requisitos

Para asignar una subred al plano de control de un clúster nuevo, primero debes agregar una subred.

Crea un clúster y asigna el rango de IP del plano de control

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Ingresa un nombre para tu clúster.

  4. En el panel de navegación, en Clúster, haz clic en Herramientas de redes.

  5. En la sección Acceso a la red IPv4, haz lo siguiente:

    1. Para crear un clúster de GKE como público, selecciona el botón de selección Clúster público.
    2. Para crear un clúster de GKE como privado, selecciona el botón de selección Clúster privado.

    En ambos casos, puedes cambiar el modo de aislamiento del clúster cuando edites la configuración del clúster.

  6. En la sección Opciones avanzadas de redes, selecciona la casilla de verificación Anular la subred predeterminada del extremo privado del plano de control.

  7. En la lista Subred del extremo privado, selecciona la subred que creaste.

  8. Desmarca la casilla de verificación Habilitar el enrutamiento de tráfico nativo de la VPC (con alias de IP).

  9. Haz clic en Crear.

Verifica que tu clúster use las rutas

gcloud

Haz una lista de los nodos de tu clúster:

kubectl get nodes

El resultado muestra los nombres de tus nodos:

NAME                                 STATUS   ...     AGE    VERSION
gke-xxx-default-pool-83e239a7-kcg8   Ready    ...     42m    v1.9.7-gke.6
gke-xxx-default-pool-83e239a7-qm6b   Ready    ...     42m    v1.9.7-gke.6
gke-xxx-default-pool-83e239a7-wnrq   Ready    ...     42m    1.9.7-gke.6

Haz una lista de tus rutas:

gcloud compute routes list

En este resultado, en la columna NEXT_HOP, busca el nombre de uno de tus nodos de clúster:

NAME                 NETWORK        DEST_RANGE         NEXT_HOP
...
[ROUTE_NAME]         default        10.24.0.0/24       [YOUR_NODE_NAME]
...

En este resultado, la ruta proporciona un próximo salto para cualquier paquete que se destina a un rango de direcciones de pod en particular.

Console

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que quieres inspeccionar.

  3. En la página Detalles del clúster, haz clic en la pestaña Nodos.

  4. En la sección Nodos, observa los nombres de cualquiera de los nodos.

  5. Ve a la página Rutas en la consola de Google Cloud.

    Ir a Rutas

  6. En la lista de rutas, en la columna Salto siguiente, busca el nombre de uno de los nodos de tu clúster. Haz clic en el nombre de la ruta en esa fila.

  7. En la página Detalles de la ruta, verifica la sección Siguiente salto a fin de verificar que la ruta proporcione un próximo salto para cualquier paquete destinado a un rango de direcciones de Pod en particular.

Pods por nodo

En un clúster basado en rutas, a cada nodo se le asigna un rango de direcciones IP de /24 para los pods. Con un rango /24, existen 256 direcciones, pero la cantidad máxima de pods por nodo es de 110. Dado que hay dos direcciones IP disponibles por cada pod posible, Kubernetes puede mitigar la reutilización de la dirección IP a medida que los pods se agregan y quitan de un nodo.

Rango de direcciones de pods

Un clúster basado en rutas tiene un rango de direcciones IP que se usan para pods y servicios. Aunque el rango se usa para pods y servicios, se denomina Rango de direcciones de pods. El último /20 del rango de direcciones del pod se usa para los servicios. El rango A /20 tiene 212= 4,096 direcciones. Por lo tanto, se usan 4,096 direcciones de servicios, y el resto del rango se usa para pods.

En el resultado del comando, el rango de direcciones pods se llama clusterIpv4Cidr y el rango de direcciones usadas para los servicios se llama servicesIpv4Cidr. Por ejemplo, el resultado de gcloud container clusters describe incluye una salida similar a la que se muestra a continuación:

clusterIpv4Cidr: 10.96.0.0/16
...
servicesIpv4Cidr: 10.96.240.0/20

El rango de direcciones de pods puede ser de cualquier bloque RFC 1918: 10.0.0.0/8, 172.16.0.0/12 o 192.168.0.0/16.

Puedes personalizar el rango de direcciones de pods si especificas un rango CIDR. Por ejemplo, puedes especificar el rango 10.96.0.0/16.

gcloud

gcloud container clusters create CLUSTER_NAME \
    --no-enable-ip-alias \
    --cluster-ipv4-cidr 10.96.0.0/16

Reemplaza CLUSTER_NAME por un nombre que elijas para el clúster.

Console

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Ingresa un nombre para tu clúster.

  4. En el panel de navegación, en Clúster, haz clic en Herramientas de redes.

  5. En Opciones avanzadas de redes, desmarca la casilla de verificación Habilitar enrutamiento de tráfico nativo de la VPC (con alias de IP).

  6. En el campo Rango de direcciones de Pods, ingresa 10.96.0.0/16.

  7. Haga clic en Crear.

Consideraciones para el tamaño del clúster

La cantidad máxima de nodos, pods y servicios para un clúster de GKE en particular se determina por el tamaño de la subred del clúster y el tamaño del rango de direcciones de pods. No puedes cambiar el tamaño del rango de direcciones de pods una vez creado un clúster. Cuando creas un clúster, asegúrate de elegir un rango de direcciones de pods que sea lo suficientemente grande como para admitir el crecimiento anticipado del clúster.

En la tabla siguiente, se explica cómo elegir rangos de direcciones que sean suficientes para un clúster de 900 nodos:

Rango Orientación
Nodos

Las direcciones IP de nodo se obtienen del rango primario de la subred del clúster. La subred de tu clúster debe ser lo suficientemente grande para conservar la cantidad total de nodos en tu clúster.

Por ejemplo, si planeas crear un clúster de 900 nodos, la subred del clúster debe tener, al menos, un tamaño de /22. Un rango /22 tiene 210 = 1,024 direcciones. Resta las 4 direcciones IP reservadas y obtendrás 1,020, que es suficiente para los 900 nodos.

Rango de direcciones de pods

Cada nodo tiene un rango /24 de direcciones IP para pods. Un rango /24 tiene 28 = 256 direcciones. Recuerda que 4,096 direcciones en el rango de direcciones de pods se usan para los servicios. La porción restante del rango de direcciones de pods se usa para pods y debe ser lo suficientemente grande a fin de contener la cantidad de nodos x 256 direcciones.

Supón que planeas crear un clúster de 900 nodos. Necesitas 900 x 256 = 230,400 direcciones para pods. Ahora supón que tienes un rango de direcciones de pods /14. Un rango /14 tiene 218 = 262,144 direcciones. Resta las 4,096 direcciones que se usan en los servicios y obtienes 258,048, lo que es suficiente para 900 nodos.

Valores predeterminados y límites de tamaños de rangos

En la tabla siguiente, se proporcionan los tamaños mínimos, máximos y predeterminados para la subred del clúster y el rango de direcciones de pods.

Rango Tamaño predeterminado Tamaño mínimo Tamaño máximo
Nodos

/20, que tiene 212 = 4,096 direcciones. Resta 4 direcciones reservadas y obtendrás 4,092 direcciones para los nodos.

/29, que tiene 23 = 8 direcciones. Resta 4 direcciones reservadas y obtendrás 4 direcciones para los nodos.

/7, que tiene 225 direcciones. Se trata, en aproximado, de 33 millones de direcciones para nodos.

Rango de direcciones de pods

/14, que tiene 218 = 262,144 direcciones.

/19, que tiene 213 = 8,192 direcciones.

/9, que tiene 223 = 8,388,608 direcciones.

Restricciones

  • No puedes migrar un clúster nativo de la VPC a un clúster basado en rutas.
  • No puedes migrar un clúster basado en rutas a un clúster nativo de la VPC.
  • Los clústeres basados en rutas solo pueden usar direcciones en el rango RFC 1918 para direcciones IP privadas. Los clústeres nativos de VPC tienen un mayor rango de direcciones que se pueden usar.
  • Los clústeres basados en rutas no admiten las redes de pila doble.

¿Qué sigue?