Crear 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).

Información general

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

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

Antes de empezar

Antes de empezar, asegúrate de que has realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando gcloud components update.

Crear un clúster basado en rutas

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

gcloud

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

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

Sustituye CLUSTER_NAME por el nombre que elijas para tu clúster.

Consola

  1. En la Google Cloud consola, ve a la página Crear un clúster de Kubernetes.

    Ir a Crear un clúster de Kubernetes

  2. Introduce un nombre para el clúster.

  3. En el panel de navegación, ve a Clúster y haz clic en Redes.

  4. En Opciones de red avanzadas, desmarca la casilla Habilitar el enrutamiento del tráfico nativo de VPC (usa IP de alias).

  5. Haz clic en Crear.

Crear un clúster basado en rutas y seleccionar el intervalo de IP del plano de control

De forma predeterminada, los clústeres con Private Service Connect usan el intervalo de la subred principal para aprovisionar la dirección IP interna asignada al endpoint del plano de control. Puedes anular este ajuste predeterminado seleccionando un intervalo 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 intervalo 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 \
    --location=CONTROL_PLANE_LOCATION

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster de GKE.
  • SUBNET_NAME: el nombre de una subred.
  • CONTROL_PLANE_LOCATION: la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.

Consola

Requisitos previos

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

Crear un clúster y asignar el intervalo de IPs del plano de control

  1. En la Google Cloud consola, ve a la página Crear un clúster de Kubernetes.

    Ir a Crear un clúster de Kubernetes

  2. Introduce un nombre para el clúster.

  3. En el panel de navegación, ve a Clúster y haz clic en Redes.

  4. En Control Plane Access (Acceso al plano de control), configura el acceso a los endpoints del plano de control.

  5. En la sección Opciones de redes avanzadas, marca la casilla Anular la subred del endpoint privado predeterminada del plano de control.

  6. En la lista Subred del endpoint privado, selecciona la subred que has creado.

  7. Desmarca la casilla Habilitar el enrutamiento del tráfico nativo de VPC (usa IP de alias).

  8. Haz clic en Crear.

Verificar que el clúster usa rutas

gcloud

Lista 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

Lista tus rutas:

gcloud compute routes list

En este resultado, en la columna NEXT_HOP, busca el nombre de uno de los nodos del 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 siguiente salto para cualquier paquete que esté destinado a un intervalo de direcciones de Pod concreto.

Consola

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

    Ir a Google Kubernetes Engine

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

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

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

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

    Ir a Rutas

  6. En la lista de rutas, en la columna Siguiente salto, busque el nombre de uno de los nodos del clúster. Haz clic en el nombre de la ruta de esa fila.

  7. En la página Detalles de la ruta, consulta la sección Siguiente salto para verificar que la ruta proporciona un siguiente salto para cualquier paquete destinado a un intervalo de direcciones de pod concreto.

Pods por nodo

En un clúster basado en rutas, a cada nodo se le asigna un intervalo /24 de direcciones IP para los pods. Con un intervalo /24, hay 256 direcciones, pero el número máximo de pods por nodo es 110. Al tener aproximadamente el doble de direcciones IP disponibles que de pods posibles, Kubernetes puede mitigar la reutilización de direcciones IP a medida que se añaden y se eliminan pods de un nodo.

Intervalo de direcciones de pods

Un clúster basado en rutas tiene un intervalo de direcciones IP que se usan para pods y servicios. Aunque el intervalo se usa tanto para pods como para servicios, se denomina intervalo de direcciones de pods. La última /20 del intervalo de direcciones de los pods se usa para los servicios. Un intervalo /20 tiene 212 = 4096 direcciones. Por lo tanto, se usan 4096 direcciones para los servicios y el resto del intervalo se usa para los pods.

En la salida de los comandos, el intervalo de direcciones de los pods se denomina clusterIpv4Cidr y el intervalo de direcciones que se usa para los servicios se denomina servicesIpv4Cidr. Por ejemplo, la salida de gcloud container clusters describe incluye una salida similar a la siguiente:

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

El intervalo 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 intervalo de direcciones de Pod especificando un intervalo CIDR. Por ejemplo, puedes especificar el intervalo 10.96.0.0/16.

gcloud

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

Sustituye CLUSTER_NAME por el nombre que elijas para tu clúster.

Consola

  1. En la Google Cloud consola, ve a la página Crear un clúster de Kubernetes.

    Ir a Crear un clúster de Kubernetes

  2. Introduce un nombre para el clúster.

  3. En el panel de navegación, ve a Clúster y haz clic en Redes.

  4. En Opciones de red avanzadas, desmarca la casilla Habilitar el enrutamiento del tráfico nativo de VPC (usa IP de alias).

  5. En el campo Intervalo de direcciones de pod, introduce 10.96.0.0/16.

  6. Haz clic en Crear.

Consideraciones para redimensionar el clúster

El número máximo de nodos, pods y servicios de un clúster de GKE determinado se establece en función del tamaño de la subred del clúster y del tamaño del intervalo de direcciones del pod. No puedes cambiar el tamaño del intervalo de direcciones de los pods después de crear un clúster. Cuando crees un clúster, asegúrate de elegir un intervalo de direcciones de pods lo suficientemente grande como para adaptarse al crecimiento previsto del clúster.

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

Intervalo Asesoramiento
Nodos

Las direcciones IP de los nodos se toman del intervalo principal de la subred del clúster. La subred del clúster debe ser lo suficientemente grande como para albergar el número total de nodos del clúster.

Por ejemplo, si tienes previsto crear un clúster de 900 nodos, la subred del clúster debe tener un tamaño de al menos /22. Un intervalo /22 tiene 210 = 1024 direcciones. Si restas las 4 direcciones IP no utilizables, obtienes 1020, que es suficiente para los 900 nodos.

Intervalo de direcciones de pods

Cada nodo tiene un intervalo /24 de direcciones IP para los pods. Un intervalo /24 tiene 28 = 256 direcciones. Recuerda que se usan 4096 direcciones del intervalo de direcciones de los pods para los servicios. La parte restante del intervalo de direcciones de pods se usa para los pods y debe ser lo suficientemente grande como para contener el número de nodos multiplicado por 256 direcciones.

Supongamos que quieres crear un clúster de 900 nodos. Por lo tanto,necesitas 900 x 256 = 230.400 direcciones para los pods. Supongamos que tienes un intervalo de direcciones de pod /14. Un intervalo /14 tiene 218 = 262.144 direcciones. Resta las 4096 direcciones usadas para los servicios y obtendrás 258.048, que es suficiente para 900 nodos.

Valores predeterminados y límites de los tamaños de los intervalos

En la siguiente tabla se indican los tamaños mínimo, máximo y predeterminado de la subred del clúster y del intervalo de direcciones de los pods.

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

/20, que tiene 212 = 4096 direcciones. Si restas 4 direcciones reservadas, obtienes 4092 direcciones para nodos.

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

/7, que tiene 225 direcciones. Esto equivale a unos 33 millones de direcciones de nodos.

Intervalo de direcciones de pods

/14, que tiene 218 = 262.144 direcciones.

/19, que tiene 213 = 8192 direcciones.

/9, que tiene 223 = 8.388.608 direcciones.

Restricciones

  • No puedes migrar un clúster nativo de VPC a un clúster basado en rutas.
  • No puedes migrar un clúster basado en rutas a un clúster nativo de VPC.
  • Los clústeres basados en rutas solo pueden usar direcciones del intervalo RFC 1918 para las direcciones IP privadas. Los clústeres nativos de VPC tienen un intervalo más amplio de direcciones utilizables.
  • Los clústeres basados en rutas no admiten redes de doble pila.

Siguientes pasos