Optimiza la asignación de direcciones IP

En esta página, se explica cómo puedes configurar el número máximo de Pods que pueden ejecutarse en un nodo. Este valor determina el tamaño de los rangos de direcciones IP que se asignan a los nodos en Google Kubernetes Engine. A los Pods que se ejecutan en un nodo se les asignan direcciones IP del rango Pod CIDR del nodo.

Descripción general

De forma predeterminada, GKE configura nodos para ejecutar un máximo de 110 Pods. Kubernetes asigna a cada nodo un rango de direcciones IP, un bloque CIDR, de modo que cada Pod puede tener una dirección IP única. El tamaño del bloque CIDR corresponde al número máximo de Pods por nodo.

Con el máximo predeterminado de 110 Pods por nodo, Kubernetes asigna un bloque /24 CIDR (256 direcciones) a cada uno de los nodos. 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 se quitan de un nodo.

Si reduces el máximo de Pods por nodo del valor predeterminado, Kubernetes asigna al nodo un bloque CIDR correspondiente más pequeño. 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 que Kubernetes asigna a cada nodo en función del máximo de Pods por nodo:

Cantidad máxima de Pods por nodo Rango CIDR por nodo
8 /28
De 9 a 16 /27
De 17 a 32 /26
De 33 a 64 /25
De 65 a 110 /24

Cuando configuras el número máximo de Pods por nodo, estás configurando de forma indirecta la cantidad de espacio de direcciones IP que requiere cada nodo del clúster. Por ejemplo, si estableces el máximo de Pods por nodo en 30, entonces, según la tabla anterior, se utiliza un rango de /26 CIDR y a cada nodo se le asignan 64 direcciones IP. Si no configuras el número máximo de Pods por nodo, se utiliza un rango de /24 CIDR y cada nodo tiene asignadas 256 direcciones IP.

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, se le otorga a cada Pod un CIDR /28. Estos rangos de direcciones IP de Pod más la subred definida por el usuario y los rangos secundarios determinan la cantidad de direcciones IP necesarias para crear un clúster con éxito.

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.

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 esta tabla para saber los tamaños de rango de dirección de Pod predeterminados, mínimos y máximos.

Configura los Pods máximos por nodo

Puedes configurar el número máximo de Pods por nodo cuando creas un clúster o un grupo de nodos. No puedes cambiar esta configuración después de crear el clúster o el grupo de nodos.

Puedes configurar el tamaño del rango de direcciones del Pod cuando creas un clúster con gcloud o Google Cloud Platform Console.

Para crear un clúster con un máximo de 110 Pods por nodo, haz lo siguiente:

gcloud

gcloud beta container clusters create \
 --enable-ip-alias --cluster-ipv4-cidr=10.0.0.0/21 \
 --create-subnetwork=name='my-cluster-subnet',range=10.4.32.0/27 \
 --services-ipv4-cidr=10.4.0.0/19 --default-max-pods-per-node=110 \
 my-cluster

Console

  1. Cuando crees un clúster, amplía la sección de Opciones avanzadas y selecciona Habilitar VPC nativo (con alias de IP) en la Sección Herramientas de redes.
  2. Establece el campo Pods máximos por nodo. GKE usa este valor para ajustar el tamaño del rango de direcciones IP asignado a los nodos.

Esto crea un clúster que puede contener hasta ocho nodos. En función del máximo de Pods por nodo, Kubernetes otorga a cada nodo un rango de /24 CIDR para que lo usen los Pods del nodo. Como este clúster asigna direcciones IP de Pod desde un rango de /21 CIDR (cluster-ipv4-cidr), puede haber hasta ocho nodos (24-21 = 3, 23 = 8). La opción default-max-pods-per-node se podría omitir porque 110 es el valor predeterminado.

Para crear un clúster con un máximo de ocho Pods por nodo, haz lo siguiente:

gcloud

gcloud beta container clusters create \
  --enable-ip-alias --cluster-ipv4-cidr=10.0.0.0/21 \
  --create-subnetwork=name='my-cluster-subnet',range=10.4.32.0/21 \
  --services-ipv4-cidr=10.4.0.0/19 --default-max-pods-per-node=8 \
  my-cluster

Console

  1. Cuando crees un clúster, amplía la sección de Opciones avanzadas y selecciona Habilitar VPC nativo (con alias de IP) en la Sección Herramientas de redes.
  2. Establece el campo Pods máximos por nodo. GKE usa este valor para ajustar el tamaño del rango de direcciones IP asignado a los nodos.

Esto crea un clúster que puede contener hasta 128 nodos. Según el máximo de Pods por nodo, Kubernetes otorga a cada nodo un rango de /28 CIDR para que lo usen los Pods del nodo. Como el rango disponible para todos los Pods (cluster-ipv4-cidr) es un rango /21, esto significa que puede haber hasta 128 nodos (28-21 = 7, 27 = 128).

También puedes especificar el número máximo de Pods por nodo mediante la creación de un grupo de nodos en un clúster 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 donde max-pods-per-node no se configuró a nivel del clúster.

gcloud

gcloud beta container node-pools create \
  my-pool --cluster=my-cluster \
  --max-pods-per-node=30

Console

  1. En la página de edición del clúster, haz clic en Agregar grupo de nodos
  2. Establece el campo Pods máximos por nodo. GKE usa este valor para ajustar el tamaño del rango de direcciones IP asignado a los nodos.

Este valor anula la opción default-max-pods-per-node que se aplica en el nivel del clúster. Si omites la opción max-pods-per-node cuando creas un grupo de nodos, se usa la configuración predeterminada a nivel del clúster.

Pasos siguientes

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

Enviar comentarios sobre...