Optimiza la asignación de direcciones IP

En esta página se explica cómo configurar la cantidad máxima 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 de CIDR de pod 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 pueda tener una dirección IP única. El tamaño del bloque CIDR corresponde al número máximo de pods por nodo.

Con la cantidad máxima predeterminada de 110 pods por nodo, Kubernetes asigna un bloque /24 CIDR (256 direcciones) a cada uno de los nodos. Debido a que el número de direcciones IP disponibles es aproximadamente el doble que la cantidad de pods que se pueden crear en un nodo, Kubernetes puede mitigar la reutilización de direcciones IP a medida que se agregan y quitan pods de un nodo.

Tener 110 pods por nodo es un límite estricto, pero se puede reducir. Si reduces el número del valor predeterminado, Kubernetes asigna al nodo un bloque CIDR más pequeño, correspondiente a ese número. 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 de la cantidad máxima de pods por nodo:

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

Cuando configuras la cantidad máxima de pods por nodo, estás configurando indirectamente la cantidad de espacio de direcciones IP que requiere cada nodo del clúster. Por ejemplo, si estableces la cantidad máxima de pods por nodo en 30, entonces, según la tabla anterior, se usa un rango de /26 CIDR y a cada nodo se le asignan 64 direcciones IP. Si no configuras la cantidad máxima de pods por nodo, se usa un rango de /24 CIDR y a cada nodo se le asignan 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 si, al momento de crearlo, especificas un espacio de dirección IP más pequeño para los pods.

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 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 de manera correcta.

Puedes configurar la cantidad máxima de pods por nodo cuando crees el clúster y el grupo de nodos.

Restricciones

  • Solo puedes configurar la cantidad máxima de pods por nodo en clústeres nativos de la 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 rangos de direcciones de pod predeterminados, mínimos y máximos.

Configura la cantidad máxima de pods por nodo

Puedes configurar la cantidad máxima 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 con Google Cloud Console.

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

gcloud

gcloud 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 \
     --zone=[COMPUTE_ENGINE_ZONE] my-cluster

Console

  1. Cuando crees un clúster, expande la sección Opciones avanzadas y selecciona Habilitar clúster nativo de la VPC (con IP de alias) 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. Según la cantidad máxima de pods por nodo, Kubernetes otorga a cada nodo un rango de CIDR /24 para que lo usen los pods. Dado que este clúster asigna direcciones IP de pod desde un rango de CIDR /21 (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 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 \
      --zone=[COMPUTE_ENGINE_ZONE] my-cluster

Console

  1. Cuando crees un clúster, expande la sección Opciones avanzadas y selecciona Habilitar clúster nativo de la VPC (con IP de alias) 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 la cantidad máxima de pods por nodo, Kubernetes otorga a cada nodo un rango de CIDR /28 para que lo usen los pods. Debido a que el rango disponible para todos los pods (cluster-ipv4-cidr) es un rango de /21, puede haber hasta 128 nodos (28-21 = 7, 27 = 128).

También puedes especificar la cantidad máxima 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 direcciones IP, incluso en clústeres existentes en los que default-max-pods-per-node no se configuró a nivel de clúster.

gcloud

gcloud 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 a nivel de 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 de clúster.

Próximos pasos