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 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
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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en add_box Crear.
Ingresa un nombre para tu clúster.
En el panel de navegación, en Clúster, haz clic en Herramientas de redes.
En Opciones avanzadas de redes, desmarca la casilla de verificación Habilitar enrutamiento de tráfico nativo de la VPC (con alias de IP).
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 queCOMPUTE_ZONE
es una zona de GKE.
Console
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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en add_box Crear.
Ingresa un nombre para tu clúster.
En el panel de navegación, en Clúster, haz clic en Herramientas de redes.
En la sección Acceso a la red IPv4, haz lo siguiente:
- Para crear un clúster de GKE como público, selecciona el botón de selección Clúster público.
- 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.
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.
En la lista Subred del extremo privado, selecciona la subred que creaste.
Desmarca la casilla de verificación Habilitar el enrutamiento de tráfico nativo de la VPC (con alias de IP).
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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que quieres inspeccionar.
En la página Detalles del clúster, haz clic en la pestaña Nodos.
En la sección Nodos, observa los nombres de cualquiera de los nodos.
Ve a la página Rutas en la consola de Google Cloud.
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.
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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en add_box Crear.
Ingresa un nombre para tu clúster.
En el panel de navegación, en Clúster, haz clic en Herramientas de redes.
En Opciones avanzadas de redes, desmarca la casilla de verificación Habilitar enrutamiento de tráfico nativo de la VPC (con alias de IP).
En el campo Rango de direcciones de Pods, ingresa
10.96.0.0/16
.Haz 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?
- Crea un clúster nativo de la VPC
- Crea un clúster zonal
- Descripción general de los rangos de alias de IP