En esta página, se explica cómo optimizar los recursos del clúster para garantizar la capacidad de programación suficiente para tus Pods configurando la cantidad máxima de Pods por nodo en clústeres estándar en Google Kubernetes Engine (GKE). En esta página, se explica cómo la relación entre los Pods, los tamaños de los bloques CIDR y la cantidad de nodos influye en la forma en que GKE programa los Pods y asigna direcciones IP dentro de tu clúster. También incluye detalles sobre las restricciones y los valores predeterminados para la cantidad máxima de Pods por nodo.
Esta página ayuda a los operadores, arquitectos de nube, desarrolladores y ingenieros de redes que aprovisionan y configuran recursos de nube, implementan apps y servicios, y administran las redes para sus implementaciones en la nube. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que se hace referencia en el contenido de Google Cloud, consulta Tareas y roles comunes de los usuarios de GKE Enterprise.
Antes de leer esta página, familiarízate con cuándo usar clústeres de GKE Standard en lugar de Autopilot y el modelo de redes de Kubernetes.
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.
Restricciones
- Solo puedes configurar los Pods máximos por nodo en clústeres nativos de VPC.
- La creación de nodos está limitada por el número de direcciones disponibles en el rango de direcciones del Pod. Consulta la tabla de planificación de rangos de direcciones IP para conocer los tamaños de rango de dirección de pod predeterminados, mínimos y máximos. También puedes agregar direcciones IP de pod adicionales mediante CIDR de varios pods no contiguos.
Cada clúster debe crear Pods de kube-system, como kube-proxy, en el espacio de nombres
kube-system
. Recuerda tener en cuenta los Pods de la carga de trabajo y los del sistema cuando reduzcas la cantidad máxima de Pods por nodo. Para enumerar los Pods del sistema en el clúster, ejecuta el siguiente comando:kubectl get pods --namespace kube-system
Configura los Pods máximos por nodo
Puedes configurar la cantidad máxima de Pods por nodo en un clúster estándar cuando creas un clúster o un grupo de nodos. No puedes cambiar este parámetro de configuración después de crear el clúster o el grupo de nodos. En los clústeres de Autopilot, la cantidad máxima de nodos está preconfigurada y es inmutable.
Sin embargo, si te quedas sin direcciones IP de Pods, puedes crear rangos de direcciones IP de Pods adicionales mediante el CIDR de varios Pods no contiguos.
Puedes configurar el tamaño del rango de direcciones del Pod cuando creas un clúster con gcloud CLI o la consola de Google Cloud .
gcloud
Para establecer los Pods máximos predeterminados por nodo mediante la CLI de gcloud, ejecuta el siguiente comando:
gcloud container clusters create CLUSTER_NAME \
--enable-ip-alias \
--cluster-ipv4-cidr=10.0.0.0/21 \
--services-ipv4-cidr=10.4.0.0/19 \
--create-subnetwork=name='SUBNET_NAME',range=10.5.32.0/27 \
--default-max-pods-per-node=MAXIMUM_PODS \
--location=COMPUTE_LOCATION
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster nuevo.SUBNET_NAME
: es el nombre de la subred nueva del clúster.MAXIMUM_PODS
: La cantidad máxima predeterminada de Pods por nodo para tu clúster; se puede configurar hasta256
. Si se omite, Kubernetes asigna el valor predeterminado de110
.COMPUTE_LOCATION
: la ubicación de Compute Engine para el clúster nuevo.
Console
Ve a la página Google Kubernetes Engine en la consola de Google Cloud .
Haz clic en add_box Crear.
Configura tu nuevo clúster.
En el panel de navegación, en Clúster, haz clic en Redes.
Asegúrate de que la casilla de verificación Habilitar enrutamiento de tráfico nativo de VPC (usa IP de alias) esté seleccionada.
En el panel de navegación, en Grupos de nodos, haz clic en Nodos.
Establece el campo Máximo de pods por nodo en
110
. GKE usa este valor para ajustar el tamaño del rango de direcciones IP asignado a los nodos.Haz clic en Crear.
Cuando configuras la cantidad máxima de Pods por nodo para el clúster, Kubernetes usa este valor a fin de asignar un rango de CIDR para los nodos. Puedes calcular la cantidad máxima de nodos en el clúster según el rango de direcciones IP secundario para Pods del clúster y el rango de CIDR asignado al nodo.
Por ejemplo, si estableces la cantidad máxima predeterminada de Pods en 110
y el rango de direcciones IP secundario para Pods en /21
, Kubernetes asigna un rango de CIDR /24
a los nodos del clúster. Esto permite un máximo de
2(24-21) = 23 = 8
nodos en el clúster.
Del mismo modo, si estableces el máximo predeterminado de Pods en 8
y el rango de direcciones IP secundario para Pods del clúster en /21
, Kubernetes asigna un rango de CIDR /28
a los nodos. Esto permite un máximo de
2(28-21) = 27 = 128
nodos en el clúster.
Establece la cantidad máxima de pods en un grupo de nodos nuevo para un clúster existente
También puedes especificar la cantidad máxima de Pods por nodo cuando creas un grupo de nodos en un clúster estándar existente. La creación de un nuevo grupo de nodos te permite optimizar la asignación de la dirección IP, incluso en clústeres existentes en los que no hay una cantidad máxima predeterminada configurada de pods por nodo a nivel de clúster.
Establecer la cantidad máxima de Pods en el nivel de grupo de nodos anula el máximo predeterminado a nivel de clúster. Si no configuras una cantidad máxima de Pods por nodo cuando creas el grupo de nodos, se aplica el máximo a nivel de clúster.
gcloud
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--max-pods-per-node=MAXIMUM_PODS
Reemplaza lo siguiente:
POOL_NAME
: es el nombre de tu grupo de nodos nuevo.CLUSTER_NAME
: es el nombre del clúster en el que deseas crear el grupo de nodos.MAXIMUM_PODS
: La cantidad máxima de pods en el grupo de nodos.
Console
Ve a la página Google Kubernetes Engine en la consola de Google Cloud .
En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.
Haz clic en add_box Agregar grupo de nodos.
Desde el panel de navegación, haz clic en Nodos.
En Herramientas de redes, ingresa un valor para el campo Máximo de Pods por nodo. GKE usa este valor para ajustar el tamaño del rango de direcciones IP asignado a los nodos.
Rangos secundarios de Pods y cantidad máxima de Pods por nodo
Cuando configuras la cantidad máxima de Pods por nodo, afectas indirectamente el tamaño requerido del rango secundario de Pods. GKE requiere un bloque CIDR mínimo de /24 por grupo de nodos. Si intentas especificar un rango secundario de Pods menor que /24 cuando creas un grupo de nodos, se genera el siguiente error:
Pod secondary range 'Pod' must have a CIDR block of at least /24
Si necesitas un rango menor que /24 para tu clúster general, puedes especificarlo a nivel del clúster con el argumento --cluster-ipv4-cidr de Google Cloud CLI. Para obtener más información, consulta Crea un clúster con un rango de CIDR específico. También puedes usar CIDR de varios Pods discontinuos para agregar más rangos de direcciones IP de Pods al clúster.
Cada clúster debe crear Pods de kube-system, como kube-proxy, en el espacio de nombres kube-system. Recuerda tener en cuenta los Pods de la carga de trabajo y los del sistema cuando configures la cantidad máxima de Pods por nodo.
Acerca de la cantidad máxima predeterminada de Pods por nodo
De forma predeterminada, GKE permite hasta 110 Pods por nodo en clústeres estándar. Sin embargo, los clústeres estándar se pueden configurar para permitir hasta 256 Pods por nodo. Los clústeres de Autopilot, según la densidad esperada de Pods de la carga de trabajo, eligen la cantidad máxima de Pods por nodo en un rango de entre 8 y 256. Kubernetes asigna a cada nodo un rango de direcciones IP, un bloque CIDR, de modo que cada pod pueda tener una dirección IP única. El tamaño del bloque CIDR corresponde al número máximo de pods por nodo.
Rangos de CIDR de pod en clústeres Standard
Con el máximo predeterminado de 110 Pods por nodo para los clústeres estándar, Kubernetes asigna un bloque /24 CIDR (256 direcciones) a cada uno de los nodos. Dado que hay más del doble de direcciones IP disponibles que el máximo de Pods que se pueden crear en un nodo, Kubernetes puede reducir la reutilización de la dirección IP a medida que los Pods se agregan y quitan de un nodo.
A pesar de que tener 256 Pods por nodo es un límite estricto, puedes reducir la cantidad de Pods en un nodo. El tamaño del bloque CIDR asignado a un nodo depende de la cantidad máxima de Pods por valor de nodo. El bloque siempre contiene al menos el doble de direcciones que el número máximo de Pods por nodo.
En la siguiente tabla, se muestra el tamaño del bloque CIDR y la cantidad correspondiente de direcciones IP disponibles que Kubernetes asigna a los nodos según la cantidad máxima de Pods por nodo:
Cantidad máxima de pods por nodo | Rango CIDR por nodo | Cantidad de direcciones IP |
---|---|---|
8 | /28 | 16 |
9 – 16 | /27 | 32 |
17 – 32 | /26 | 64 |
33 – 64 | /25 | 128 |
65 – 128 | /24 | 256 |
129 - 256 | /23 | 512 |
Rangos de CIDR del Pod en clústeres de Autopilot
En los clústeres de Autopilot para GKE, la cantidad máxima de Pods por nodo y la asignación de bloques CIDR asociados son dinámicas. Esto significa que pueden variar según la versión de GKE y la densidad de la carga de trabajo.
Versiones 1.27 y anteriores de GKE Autopilot: La cantidad máxima de Pods por nodo se fija en 32. Esto da como resultado que se asigne un bloque CIDR /26 (64 direcciones IP) a cada nodo.
Versiones 1.28 y posteriores de GKE Autopilot: La cantidad máxima de Pods por nodo es dinámica y puede variar de 8 a 256. El tamaño del bloque CIDR se ajusta según corresponda para garantizar que cada Pod tenga una dirección IP única.
La naturaleza dinámica de la cantidad máxima de Pods por nodo en los clústeres de Autopilot permite un uso eficiente de los recursos. El clúster se adapta automáticamente a los requisitos de la carga de trabajo, ya que asigna la cantidad adecuada de Pods y direcciones IP por nodo.
Para adaptarse al tamaño inicial del clúster y a la configuración de la cantidad máxima de Pods por nodo, selecciona un rango de direcciones IP secundarias adecuado para los Pods. Te recomendamos que planifiques tu direccionamiento IP con cuidado. Sin embargo, si agotas las direcciones IP a medida que se escala el clúster, se impedirá que se siga escalando hasta que se agreguen más direcciones IP. Puedes agregar rangos secundarios adicionales más adelante si es necesario. Para obtener más información sobre cómo agregar más rangos de direcciones IP después de crear el clúster, consulta Cómo agregar rangos secundarios a una red de VPC.
En general, se recomienda un rango de /16 (por ejemplo, cluster-ipv4-cidr=240.0.0.0/16) para brindar flexibilidad en el crecimiento y los cambios en la densidad de Pods dentro del clúster.
Ten en cuenta los siguientes puntos cuando planifiques la configuración de red de tu clúster de Autopilot:
- Densidad de Pods: Considera la cantidad máxima de Pods en tu clúster que podrían requerir tus cargas de trabajo.
- Rango de CIDR: Elige un rango de direcciones IP secundarias para los Pods que pueda satisfacer los requisitos de tamaño del clúster y densidad de Pods.
- Flexibilidad: Un rango CIDR más grande, como /16, proporciona más flexibilidad para el crecimiento futuro y los cambios en la densidad de Pods.
Si planificas cuidadosamente tu rango de CIDR, puedes ayudar a garantizar que tu clúster de Autopilot pueda escalarse inicialmente para satisfacer tus necesidades. Sin embargo, si te encuentras con limitaciones de direcciones IP a medida que crece tu clúster, puedes agregar rangos secundarios adicionales para admitir un mayor escalamiento.
Reduce la cantidad máxima de Pods
La reducción del número máximo de Pods por nodo permite que el clúster tenga más nodos, ya que cada nodo requiere una parte más pequeña del espacio total de direcciones IP. De manera alternativa, podrías admitir la misma cantidad de nodos en el clúster especificando un espacio de dirección IP más pequeño para los Pods en el momento de la creación del clúster.
La reducción del número máximo de Pods por nodo también te permite crear clústeres más pequeños que requieren menos direcciones IP. Por ejemplo, con ocho pods por nodo, a cada nodo se le otorga un CIDR /28. Estos rangos de direcciones IP más la subred y los rangos secundarios que defines determinan la cantidad de direcciones IP necesarias para crear un clúster de forma correcta.
Puedes configurar la cantidad máxima de Pods por nodo en el momento de creación de clústeres y en el momento de creación del grupo de nodos.
¿Qué sigue?
- Obtén información para crear clústeres nativos de VPC.
- Obtén más información para agregar direcciones IP de Pod adicionales a los clústeres.
- Obtén información sobre las estrategias de administración de direcciones IP cuando se migra a GKE.
- Obtén más información sobre las estadísticas de uso de direcciones IP de GKE.