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.

Descripción general

En Google Kubernetes Engine, los clústeres se pueden distinguir de acuerdo con la forma en que enrutan el tráfico de un pod a otro. Un clúster que usa Rutas de Google Cloud Platform 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. Si quieres crear un clúster basado en rutas, debes desactivar de manera explícita la opción VPC nativa.

Antes de comenzar

Sigue estos pasos a fin de prepararte para esta tarea:

  • Asegúrate de haber habilitado la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Asegúrate de haber instalado el SDK de Cloud.
  • Establece tu ID del proyecto predeterminado:
    gcloud config set project [PROJECT_ID]
  • Si trabajas con clústeres zonales, establece tu zona de procesamiento predeterminada:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Si trabajas con clústeres regionales, establece tu región de procesamiento predeterminada:
    gcloud config set compute/region [COMPUTE_REGION]
  • Actualiza gcloud a la versión más reciente:
    gcloud components update

Crea un clúster basado en rutas

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

donde [CLUSTER_NAME] es el nombre que eliges para tu clúster.

Console

  1. Ve al menú de Google Kubernetes Engine en GCP Console.

    Ir al menú de Google Kubernetes Engine

  2. Haz clic en Crear clúster

  3. Ingresa un nombre para tu clúster.

  4. Haz clic en Opciones avanzadas.

  5. En VPC nativas, anula la selección Habilitar VPC nativas (con un alias de IP).

  6. 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 tus rutas:

gcloud compute routes list

En el 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 el resultado, puedes ver que 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 al menú de Google Kubernetes Engine en GCP Console.

    Ir al menú de Google Kubernetes Engine

  2. Haz clic en el nombre del clúster para abrir una página de detalles del clúster.

  3. En Grupos de nodos, busca Grupos de instancias y haz clic en el nombre del grupo de instancias. Se abre la página Grupos de instancias y muestra una lista de los nodos del clúster. Toma nota de los nombres de tus nodos.

  4. Visita la página de rutas en GCP Console.

    Visita la página de rutas

  5. 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.

  6. Se abrirá la página de detalles de ruta y podrás ver que la ruta proporciona un próximo salto para cualquier paquete que se destina 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

Para la versión 1.7 de GKE y versiones posteriores, 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. Para versiones anteriores, el rango de direcciones de pods puede ser de 10.0.0.0/8.

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

donde [CLUSTER_NAME] es el nombre que eliges para tu clúster.

Console

  1. Ve al menú de Google Kubernetes Engine en GCP Console.

    Ir al menú de Google Kubernetes Engine

  2. Haz clic en Crear clúster

  3. Ingresa un nombre para tu clúster.

  4. Haz clic en Opciones avanzadas.

  5. Para el Rango de dirección de pods, ingresa 10.96.0.0/16.

  6. Haz clic en Crear.

Consideraciones para el tamaño de clústeres

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 puede 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 que tenga 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 VPC.

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Kubernetes Engine