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 pueda 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. 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.

A pesar de que tener 110 pods por nodo es un límite estricto, puedes reducir la cantidad de pods por nodo. Si reduces el número 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 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 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 si especificas 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 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 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.

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 la herramienta de gcloud o Google Cloud Console.

Crea un clúster con un máximo de 110 pods por nodo

gcloud

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

Console

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en el botón Crear clúster.

  3. Configura tu clúster como desees.

  4. En el panel de navegación, en Clúster, haz clic en Herramientas de redes.

  5. Asegúrate de que la casilla de verificación Habilitar enrutamiento de tráfico nativo de VPC (usa IP de alias) esté seleccionada.

  6. En el panel de navegación, en Grupos de nodos, haz clic en Nodos.

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

  8. Haz clic en Crear.

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

Crea un clúster con un máximo de 8 pods por nodo

gcloud

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

Console

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en el botón Crear clúster.

  3. Configura tu clúster como desees.

  4. En el panel de navegación, en Clúster, haz clic en Herramientas de redes.

  5. Asegúrate de que la casilla de verificación Habilitar enrutamiento de tráfico nativo de VPC (usa IP de alias) esté seleccionada.

  6. En el panel de navegación, en Grupos de nodos, haz clic en Nodos.

  7. Establece el campo Máximo de pods por nodo en 8. GKE usa este valor para ajustar el tamaño del rango de direcciones IP asignado a los nodos.

  8. Haz clic en Crear.

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. Debido a que el rango disponible para todos los pods (cluster-ipv4-cidr) es un rango /21, puede haber hasta 128 nodos (28-21 = 7, 27= 128).

Establece la cantidad máxima de pods en un grupo de nodos nuevo para un clúster existente

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 en los que default-max-pods-per-node no se configuró a nivel de clúster.

gcloud

gcloud container node-pools create pool-name \
  --cluster=cluster-name \
  --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. Especifica 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.

Este valor anula la opción default-max-pods-per-node que se aplica en el 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