Solicitudes de recursos en Autopilot

Para mejorar la estabilidad de las cargas de trabajo, el modo Autopilot de Google Kubernetes Engine (GKE) administra los valores de las solicitudes de recursos de Pods, como CPU, memoria o almacenamiento efímero. En esta página, se incluye la siguiente información, que puedes usar para planificar cargas de trabajo eficientes, estables y rentables:

  • Valores predeterminados que Autopilot aplica a los Pods que no especifican valores.
  • Valores mínimos y máximos que Autopilot aplica para las solicitudes de recursos.
  • Cómo varían los valores predeterminados, mínimos y máximos según el hardware que solicitan tus Pods

Esta página está dirigida a operadores y desarrolladores que aprovisionan y configuran recursos de la nube, y que implementan cargas de trabajo. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud, consulta Roles de usuario y tareas comunes de GKE.

Ya deberías conocer la administración de recursos de Kubernetes.

Descripción general de las solicitudes de recursos en Autopilot

Autopilot usa las solicitudes de recursos que especificas en la configuración de tu carga de trabajo para configurar los nodos que ejecutan tus cargas de trabajo. Autopilot aplica las solicitudes de recursos mínimas y máximas según la clase de procesamiento o la configuración de hardware que usan tus cargas de trabajo. Si no especificas solicitudes para algunos contenedores, Autopilot asigna valores predeterminados para permitir que esos contenedores se ejecuten de forma correcta.

Cuando implementas una carga de trabajo en un clúster de Autopilot, GKE valida la configuración de la carga de trabajo con los valores mínimos y máximos permitidos para la clase de procesamiento seleccionada o la configuración de hardware (como las GPU). Si tus solicitudes son menores que el mínimo, Autopilot modifica automáticamente la configuración de tu carga de trabajo para mover tus solicitudes dentro del rango permitido. Si tus solicitudes son superiores al máximo, Autopilot rechaza tu carga de trabajo y muestra un mensaje de error.

En la siguiente lista, se resumen las categorías de solicitudes de recursos:

  • Solicitudes de recursos predeterminadas: Autopilot las agrega si no especificas tus propias solicitudes para cargas de trabajo
  • Solicitudes de recursos mínimas y máximas: Autopilot valida tus solicitudes especificadas para garantizar que estén dentro de estos límites. Si tus solicitudes están fuera de los límites, Autopilot las modificará.
  • Separación de cargas de trabajo y solicitudes de duración extendida: Autopilot tiene diferentes valores predeterminados y diferentes valores mínimos para las cargas de trabajo que separan entre sí o para Pods que obtienen protección extendida de la expulsión iniciada por GKE.
  • Solicitudes de recursos para DaemonSets: Autopilot tiene diferentes valores predeterminados, mínimos y máximos para los contenedores en DaemonSets.

Cómo solicitar recursos

En Autopilot, solicitas recursos en la especificación del Pod. Los recursos mínimos y máximos admitidos que puedes solicitar cambian según la configuración de hardware del nodo en el que se ejecutan los Pods. Para obtener información sobre cómo solicitar configuraciones de hardware específicas, consulta las siguientes páginas:

Solicitudes de recursos predeterminadas

Si no especificas solicitudes de recursos para algunos contenedores en un Pod, Autopilot aplica valores predeterminados. Estos valores predeterminados son adecuados para muchas cargas de trabajo más pequeñas.

Además, Autopilot aplica las siguientes solicitudes de recursos predeterminadas, sin importar la clase de procesamiento o la configuración de hardware seleccionadas:

  • Contenedores en DaemonSets

    • CPU: 50 mCPU
    • Memoria: 100 MiB
    • Almacenamiento efímero: 100 MiB
  • Todos los demás contenedores

    • Almacenamiento efímero: 1 GiB

Para obtener más información sobre los límites del clúster de Autopilot, consulta Cuotas y límites.

Solicitudes predeterminadas para clases de procesamiento

Autopilot aplica los siguientes valores predeterminados a los recursos que no están definidos en la especificación del Pod para pods que se ejecutan en clases de procesamiento: Si solo configuras una de las solicitudes y dejas la otra en blanco, GKE usa la proporción de CPU:memoria definida en la sección Solicitudes mínimas y máximas para establecer la solicitud faltante a un valor que cumple con la proporción.

Clase de procesamiento Recurso Solicitud predeterminada
De uso general (predeterminado) CPU 0.5 CPU virtual
Memoria 2 GiB
Accelerator No se aplican solicitudes predeterminadas.
Equilibrado CPU 0.5 CPU virtual
Memoria 2 GiB
Rendimiento No se aplican solicitudes predeterminadas.
Escalar horizontalmente CPU 0.5 CPU virtual
Memoria 2 GiB

Solicitudes de recursos mínimas y máximas

El total de recursos que solicita tu configuración de implementación debe estar dentro de los valores mínimos y máximos admitidos que permite Autopilot. Se aplican las siguientes condiciones:

  • Solicitudes de almacenamiento efímero:

    • El almacenamiento efímero usa el disco de arranque de la VM, a menos que tus nodos tengan SSD locales conectadas.

      El hardware de procesamiento que incluye SSD locales, como las GPU A100 (80 GB), las GPU H100 (80 GB) o la serie de máquinas Z3, admite una solicitud máxima igual al tamaño de la SSD local menos cualquier sobrecarga del sistema. Para obtener información sobre esta sobrecarga del sistema, consulta Almacenamiento efímero respaldado por SSD locales.

    • En la versión 1.29.3-gke.1038000 y posteriores de GKE, los Pods de clase de rendimiento y los Pods de acelerador de hardware admiten una solicitud de almacenamiento efímero máximo de 56 TiB, a menos que el hardware incluya SSDs locales.

      En todos los demás Pods de Autopilot, independientemente de la versión de GKE, la solicitud total de almacenamiento efímero en todos los contenedores del Pod debe estar entre 10 MiB y 10 GiB, a menos que se especifique lo contrario.

    • Para volúmenes más grandes, usa volúmenes efímeros genéricos, que proporcionan una funcionalidad y un rendimiento equivalentes al almacenamiento efímero, pero con mucha más flexibilidad, ya que se pueden usar con cualquier opción de almacenamiento de GKE. Por ejemplo, el tamaño máximo de un volumen efímero genérico con pd-balanced es de 64 TiB.

  • Para los Pods DaemonSet, las solicitudes mínimas de recursos son las siguientes:

    • Clústeres que admiten aumentos de actividad: 1 mCPU por Pod, 2 MiB de memoria por Pod y 10 MiB de almacenamiento efímero por contenedor en el Pod.
    • Clústeres que no admiten aumentos de actividad: 10 mCPU de CPU por Pod, 10 MiB de memoria por Pod y 10 MiB de almacenamiento efímero por contenedor en el Pod.

    Para verificar si tu clúster admite el aumento de actividad, consulta Disponibilidad del aumento de actividad en GKE.

  • Si tu clúster admite el aumento repentino de actividad, Autopilot no aplica incrementos de 0.25 CPU virtuales para las solicitudes de CPU de tu Pod. Si tu clúster no admite el aumento repentino de actividad, Autopilot redondea tus solicitudes de CPU al incremento de 0.25 vCPU más cercano. Para verificar si tu clúster admite el bursting, consulta Disponibilidad del bursting en GKE.

  • La proporción de CPU y memoria debe estar dentro del rango permitido para la clase de procesamiento o la configuración de hardware seleccionada. Si la proporción entre CPU y memoria está fuera del rango permitido, Autopilot aumenta automáticamente el recurso más pequeño. Por ejemplo, si solicitas 1 CPU virtual y 16 GiB de memoria (proporción 1:16) para Pods que se ejecutan en la clase Scale-Out, Autopilot aumenta la solicitud de CPU a 4 CPU virtuales, lo que cambia la proporción a 1:4.

Mínimos y máximos para las clases de procesamiento

En la siguiente tabla, se describe la proporción de CPU y memoria mínima, máxima y permitida para cada clase de procesamiento que admite Autopilot:

Clase de procesamiento Proporción de CPU:memoria (CPU virtual:GiB) Recurso Mínimo Máximo
De uso general (predeterminado) Entre 1:1 y 1:6.5 CPU

El valor depende de si tu clúster admite ráfagas, de la siguiente manera:

  • Clústeres que admiten aumentos de actividad: 50 m de CPU
  • Clústeres que no admiten aumentos de actividad: 250 m de CPU

Para verificar si tu clúster admite el aumento de actividad, consulta Disponibilidad del aumento de actividad en GKE.

30 CPU virtuales
Memoria

El valor depende de si tu clúster admite ráfagas, de la siguiente manera:

  • Clústeres que admiten aumentos de actividad: 52 MiB
  • Clústeres que no admiten aumentos de actividad: 512 MiB

Para verificar si tu clúster admite el aumento de actividad, consulta Disponibilidad del aumento de actividad en GKE.

110 GiB
Accelerator Consulta Valores mínimos y máximos para los aceleradores
Equilibrado Entre 1:1 y 1:8 CPU 0.25 CPU virtual

222 CPU virtuales

Si se seleccionó la plataforma de CPU mínima, haz lo siguiente:

  • Plataformas Intel: 126 CPU virtuales
  • Plataformas AMD: 222 CPU virtuales
Memoria 0.5 GiB

851 GiB

Si se seleccionó la plataforma de CPU mínima, haz lo siguiente:

  • Plataformas Intel: 823 GiB
  • Plataformas AMD: 851 GiB
Rendimiento N/A CPU No se aplica una cantidad mínima de solicitudes
  • Serie de máquinas C2: 58 CPUs virtuales
  • Serie de máquinas C2D: 110 CPUs virtuales
  • Serie de máquinas C3: 174 CPUs virtuales
  • Serie de máquinas C3 con SSD local: 174 CPUs virtuales
  • Serie de máquinas C3D: 358 CPUs virtuales
  • Serie de máquinas C3D con SSD local: 358 CPUs virtuales
  • Serie de máquinas C4D (1.33.0-gke.1439000 o posterior): 382 CPUs virtuales
  • Serie de máquinas C4D con SSD local (1.33.1-gke.1171000 o posterior): 382 CPU virtuales
  • Serie de máquinas H3: 86 CPUs virtuales
  • Serie de máquinas H4D (1.33.2-gke.4731000 o posterior): 192 CPUs virtuales
  • Serie de máquinas T2A: 46 CPUs virtuales
  • Serie de máquinas T2D: 58 CPUs virtuales
  • Serie de máquinas C4: 286 CPUs virtuales
  • Serie de máquinas M4 (1.33.4-gke.1013000 o posterior): 224 CPU virtuales
  • Serie de máquinas N4: 78 CPUs virtuales
  • Serie de máquinas Z3: 174 CPUs virtuales
Memoria No se aplica una cantidad mínima de solicitudes
  • Serie de máquinas C2: 218 GiB
  • Serie de máquinas C2D: 835 GiB
  • Serie de máquinas C3: 1,345 GiB
  • Serie de máquinas C3 con SSD local: 670 GiB
  • Serie de máquinas C3D: 2,750 GiB
  • Serie de máquinas C3D con SSD local: 1,375 GiB
  • Serie de máquinas C4D (1.33.0-gke.1439000 o posterior): 2,905 GiB
  • Serie de máquinas C4D con SSD local (1.33.1-gke.1171000 o posterior): 2,905 GiB
  • Serie de máquinas H3: 330 GiB
  • Serie de máquinas H4D (1.33.2-gke.4731000 o posterior): 1,400 GiB
  • Serie de máquinas T2A: 172 GiB
  • Serie de máquinas T2D: 218 GiB
  • Serie de máquinas C4: 2,140 GiB
  • Serie de máquinas M4 (1.33.4-gke.1013000 o posterior): 5,952 GiB
  • Serie de máquinas N4: 600 GiB
  • Serie de máquinas Z3: 34,000 GiB
Almacenamiento efímero No se aplica una cantidad mínima de solicitudes
  • Serie de máquinas C2: 56 TiB
  • Serie de máquinas C2D: 56 TiB
  • Serie de máquinas C3: 56 TiB
  • Serie de máquinas C3 con SSD local: 10,000 GiB
  • Serie de máquinas C3D: 56 TiB
  • Serie de máquinas C3D con SSD local: 10,000 GiB
  • Serie de máquinas C4D (1.33.0-gke.1439000 o posterior): 56 TiB
  • Serie de máquinas C4D con SSD local (1.33.1-gke.1171000 o posterior): 10,000 GiB
  • Serie de máquinas H3: 56 TiB
  • Serie de máquinas H4D (1.33.2-gke.4731000 o posterior): 56 Ti
  • Serie de máquinas T2A: 56 TiB
  • Serie de máquinas T2D: 56 TiB
  • Serie de máquinas C4: 56 TiB
  • Serie de máquinas M4 (1.33.4-gke.1013000 o posterior): 56 TiB
  • Serie de máquinas N4: 56 TiB
  • Serie de máquinas Z3: 34,000 GiB
Escalar horizontalmente Exactamente 1:4 CPU 0.25 CPU virtual
  • arm64: 43 CPU virtuales
  • amd64: 54 CPU virtuales
Memoria 1 GiB
  • arm64: 172 GiB
  • amd64: 216 GiB

Para obtener información sobre cómo solicitar clases de procesamiento en tus Pods de Autopilot, consulta Elige clases de procesamiento para Pods de Autopilot.

Mínimos y máximos para los aceleradores

GKE no aplica solicitudes mínimas de CPU, memoria o almacenamiento efímero para los Pods que usan aceleradores. En la siguiente tabla, se describen las solicitudes máximas para cada uno de estos recursos según la cantidad y el tipo de acelerador que uses.

A menos que se especifique, el almacenamiento efímero máximo admitido es de 56 TiB.

Tipo de acelerador Recurso Máximo
NVIDIA B200
nvidia-B200
CPU
  • 8 GPUs: 224 CPUs virtuales
Memoria
  • 8 GPUs: 3968 GiB
Almacenamiento efímero
  • 8 GPUs: 10 TiB
NVIDIA H200 (141 GB)
nvidia-h200-141gb
CPU
  • 8 GPUs: 224 CPUs virtuales
Memoria
  • 8 GPUs: 2952 GiB
Almacenamiento efímero
  • 8 GPUs: 10 TiB (1.32.2-gke.1182000 o posterior)
  • 8 GPUs: 2540 GiB (anterior a la versión 1.32.2-gke.1182000)
NVIDIA H100 Mega (80 GB)
nvidia-h100-mega-80gb
CPU
  • 8 GPUs: 206 CPUs virtuales
Memoria
  • 8 GPUs: 1795 GiB
Almacenamiento efímero
  • 8 GPUs: 5250 GiB
NVIDIA H100 (80 GB)
nvidia-h100-80gb
CPU
  • 8 GPUs: 206 CPUs virtuales
Memoria
  • 8 GPUs: 1795 GiB
Almacenamiento efímero
  • 8 GPUs: 5250 GiB
NVIDIA A100 (40 GB)
nvidia-tesla-a100
CPU
  • 1 GPU: 11 CPUs virtuales
  • 2 GPUs: 22 CPUs virtuales
  • 4 GPUs: 46 CPUs virtuales
  • 8 GPUs: 94 CPUs virtuales
  • 16 GPUs: 94 CPUs virtuales

La suma de solicitudes de CPU de todos los DaemonSets que se ejecutan en un nodo de GPU A100 no debe exceder las 2 CPUs virtuales.

Memoria
  • 1 GPU: 74 GiB
  • 2 GPUs: 148 GiB
  • 4 GPUs: 310 GiB
  • 8 GPUs: 632 GiB
  • 16 GPUs: 1264 GiB

La suma de las solicitudes de memoria de todos los DaemonSets que se ejecutan en un nodo de GPU A100 no debe exceder los 14 GiB.

NVIDIA A100 (80 GB)
nvidia-a100-80gb
CPU
  • 1 GPU: 11 CPUs virtuales
  • 2 GPUs: 22 CPUs virtuales
  • 4 GPUs: 46 CPUs virtuales
  • 8 GPUs: 94 CPUs virtuales

La suma de solicitudes de CPU de todos los DaemonSets que se ejecutan en un nodo de GPU A100 (80 GB) no debe exceder las 2 CPUs virtuales.

Memoria
  • 1 GPU: 148 GiB
  • 2 GPUs: 310 GiB
  • 4 GPUs: 632 GiB
  • 8 GPUs: 1264 GiB

La suma de las solicitudes de memoria de todos los DaemonSets que se ejecutan en un nodo de GPU A100 (80 GB) no debe exceder los 14 GiB.

Almacenamiento efímero
  • 1 GPU: 280 GiB
  • 2 GPUs: 585 GiB
  • 4 GPUs: 1220 GiB
  • 8 GPUs: 2540 GiB
NVIDIA L4
nvidia-l4
CPU
  • 1 GPU: 31 CPUs virtuales
  • 2 GPUs: 23 CPUs virtuales
  • 4 GPUs: 47 CPUs virtuales
  • 8 GPUs: 95 CPUs virtuales

La suma de solicitudes de CPU de todos los DaemonSets que se ejecutan en un nodo de GPU L4 no debe exceder las 2 CPUs virtuales.

Memoria
  • 1 GPU: 115 GiB
  • 2 GPUs: 83 GiB
  • 4 GPUs: 177 GiB
  • 8 GPUs: 363 GiB

La suma de las solicitudes de memoria de todos los DaemonSets que se ejecutan en un nodo de GPU L4 no debe exceder los 14 GiB.

NVIDIA Tesla T4
nvidia-tesla-t4
CPU
  • 1 GPU: 46 CPUs virtuales
  • 2 GPUs: 46 CPUs virtuales
  • 4 GPUs: 94 CPUs virtuales
Memoria
  • 1 GPU: 287.5 GiB
  • 2 GPUs: 287.5 GiB
  • 4 GPUs: 587.5 GiB
TPU v5e
tpu-v5-lite-podslice
CPU
  • Topología 1 x 1: 24 CPUs virtuales
  • Topología de 2 x 2: 112 CPUs virtuales
  • Topología 2 x 4 (solicitud de 4 chips): 112 CPUs virtuales
  • Topología 2x4 (solicitud de 8 chips): 224 CPUs virtuales
  • Topología 4x4: 112 CPUs virtuales
  • Topología 4x8: 112 CPUs virtuales
  • Topología de 8 x 8: 112 CPUs virtuales
  • Topología de 8 x 16: 112 CPUs virtuales
  • Topología de 16 x 16: 112 CPUs virtuales
Memoria
  • Topología de 1 x 1: 48 GiB
  • Topología de 2 x 2: 192 GiB
  • Topología 2 x 4 (solicitud de 4 chips): 192 GiB
  • Topología 2 x 4 (solicitud de 8 chips): 384 GiB
  • Topología 4x4: 192 GiB
  • Topología 4x8: 192 GiB
  • Topología de 8 x 8: 192 GiB
  • Topología de 8 x 16: 192 GiB
  • Topología de 16 x 16: 192 GiB
Almacenamiento efímero 56 TiB
TPU v5p
tpu-v5p-slice
CPU 280 CPU virtuales
Memoria 448 GiB
Almacenamiento efímero 56 TiB
TPU v4
tpu-v4-podslice
CPU 240 CPU virtuales
Memoria 407 GiB
Almacenamiento efímero 56 TiB

Para obtener información sobre cómo solicitar GPU en tus Pods de Autopilot, consulta Implementa cargas de trabajo de GPU en Autopilot.

Solicitudes de recursos para la separación de cargas de trabajo y la duración extendida

Autopilot te permite manipular el comportamiento de programación y desalojo de Kubernetes con métodos como los siguientes:

Si tus solicitudes especificadas son menores que los mínimos, el comportamiento de Autopilot cambia según el método que usaste, de la siguiente manera:

  • Taints, tolerancias, selectores y Pods de duración extendida: Autopilot modifica tus Pods para aumentar las solicitudes cuando se programan los Pods.
  • Antiafinidad de Pods: Autopilot rechaza el Pod y muestra un mensaje de error.

En la siguiente tabla, se describen las solicitudes predeterminadas y las solicitudes de recursos mínimas que puedes especificar. Si una configuración o clase de procesamiento no se encuentra en esta tabla, Autopilot no aplica valores mínimos especiales ni predeterminados.

Clase de procesamiento Recurso Predeterminado Mínimo
Uso general CPU 0.5 CPU virtual 0.5 CPU virtual
Memoria 2 GiB 0.5 GiB
Equilibrado CPU 2 CPU virtuales 1 CPU virtual
Memoria 8 GiB 4 GiB
Escalar horizontalmente CPU 0.5 CPU virtual 0.5 CPU virtual
Memoria 2 GiB 2 GiB

Contenedores Init

Los contenedores init se ejecutan de forma secuencial, y todos los contenedores init deben terminar de ejecutarse antes de que se puedan iniciar los contenedores de la aplicación. En los clústeres de Autopilot, si no especificas solicitudes de CPU o memoria para los contenedores init, o bien si estableces solicitudes de forma explícita en 0, Autopilot modifica tus Pods durante la creación para agregar solicitudes de recursos a cada contenedor init. Las solicitudes asignadas a cada contenedor init son iguales a la suma de las solicitudes de todos los contenedores de la aplicación en el Pod. Este es el comportamiento predeterminado.

Este comportamiento difiere de los clústeres estándar, en los que los contenedores init usan cualquier recurso sin asignar disponible en el nodo en el que está programado el Pod.

Asignación automática de recursos para contenedores de inicialización

La asignación automática de recursos para los contenedores de inicialización se produce en el momento de la creación del Pod. Te sugerimos que no especifiques manualmente solicitudes de recursos para los contenedores init en los clústeres de Autopilot, de modo que cada contenedor obtenga los recursos completos disponibles para el Pod de forma predeterminada.

Si cambias las solicitudes de recursos de los contenedores que no son init en el Pod después de la creación, Autopilot no ajusta automáticamente las solicitudes de recursos de los contenedores init. Como resultado, es posible que observes cargos que no coincidan con el uso real de recursos del Pod. Tu factura se basa en la solicitud de recursos efectiva del Pod, que es la mayor de las siguientes:

  • Es la solicitud de recursos más grande de cualquier contenedor init individual en el Pod.
  • Es la suma de las solicitudes de todos los contenedores de la aplicación en el Pod.

Para obtener más información, consulta Administración automática de recursos en Autopilot.

Asignación manual de recursos para contenedores init

Si necesitas cambiar las solicitudes de recursos existentes para los contenedores de tu aplicación y, así, administrar los costos y los recursos, te recomendamos que realices una de las siguientes acciones para ajustar las solicitudes de tu contenedor init:

  • Actualiza manualmente las solicitudes de recursos del contenedor init para que coincidan con las nuevas solicitudes totales del Pod. Ten en cuenta lo siguiente cuando especifiques manualmente las solicitudes de recursos:
    • Las solicitudes inferiores a los recursos totales del Pod pueden limitar el contenedor init.
    • Las solicitudes superiores a los recursos totales del Pod pueden aumentar los costos.
  • Quita las solicitudes de recursos para permitir que Autopilot las vuelva a calcular. De forma predeterminada, Autopilot volverá a asignar los recursos a cada contenedor init según los recursos totales actuales solicitados por todos los contenedores de la aplicación en el Pod.

Cómo establecer límites de recursos en Autopilot

Kubernetes te permite configurar requests y limits para los recursos en la especificación del Pod. El comportamiento de tus Pods cambia según si tus limits son diferentes de tus requests, como se describe en la siguiente tabla:

Valores establecidos Comportamiento de Autopilot
requests igual a limits Los Pods usan la clase QoS Guaranteed.
requests establecido, limits no establecido

El comportamiento depende de si tu clúster admite ráfagas, de la siguiente manera:

  • Clústeres que admiten aumentos de actividad: Los Pods pueden generar aumentos de actividad en la capacidad de aumento de actividad disponible.
  • Clústeres que no admiten aumentos de actividad: GKE establece el valor de limits igual al de requests

Para verificar si tu clúster admite el aumento de actividad, consulta Disponibilidad del aumento de actividad en GKE.

requests no establecido, limits establecido Autopilot establece requests en el valor de limits, que es el comportamiento predeterminado de Kubernetes.

Antes:

resources:
  limits:
    cpu: "400m"

Después:

resources:
  requests:
    cpu: "400m"
  limits:
    cpu: "400m"
requests menos que limits

El comportamiento depende de si tu clúster admite ráfagas, de la siguiente manera:

  • Clústeres que admiten aumentos de actividad: Los Pods pueden aumentar su actividad hasta el valor especificado en limits.
  • Clústeres que no admiten aumentos de actividad: GKE establece el valor de limits igual al de requests

Para verificar si tu clúster admite el aumento de actividad, consulta Disponibilidad del aumento de actividad en GKE.

requests mayor que limits Autopilot establece requests en el valor de limits.

Antes:

resources:
  requests:
    cpu: "450m"
  limits:
    cpu: "400m"

Después:

resources:
  requests:
    cpu: "400m"
  limits:
    cpu: "400m"
requests no fijado, limits no fijado

Autopilot establece requests en los valores predeterminados para la clase de procesamiento o la configuración de hardware.

El comportamiento de limits depende de si tu clúster admite ráfagas, como se indica a continuación:

  • Clústeres que admiten aumentos de actividad: Autopilot no establece limits.
  • Clústeres que no admiten aumentos de actividad: GKE establece el valor de limits igual al de requests

Para verificar si tu clúster admite el aumento de actividad, consulta Disponibilidad del aumento de actividad en GKE.

En la mayoría de las situaciones, debes establecer las solicitudes de recursos adecuadas y los límites iguales para las cargas de trabajo.

En el caso de las cargas de trabajo que necesitan más recursos que su estado estable de forma temporal, como durante el arranque o durante períodos de tráfico más altos, establece tus límites más altos que las solicitudes para permitir que los Pods generen aumentos de actividad. Para obtener más información, consulta Configura el aumento de actividad de Pods en GKE.

Administración automática de recursos en Autopilot

Si tus solicitudes de recursos especificadas para tus cargas de trabajo están fuera de los rangos permitidos o si no solicitas recursos para algunos contenedores, Autopilot modifica tu configuración de cargas de trabajo para cumplir con los límites permitidos. Autopilot calcula las proporciones de recursos y los requisitos de escalamiento vertical de recursos después de aplicar valores predeterminados a los contenedores sin ninguna solicitud especificada.

  • Solicitudes faltantes: Si no solicitas recursos en algunos contenedores, Autopilot aplica las solicitudes predeterminadas para la clase de procesamiento o la configuración de hardware.
  • Proporción de CPU:memoria: Autopilot escala verticalmente el recurso más pequeño para tener la proporción dentro del rango permitido.
  • Almacenamiento efímero: Autopilot modifica tus solicitudes de almacenamiento efímero para cumplir con la cantidad mínima requerida por cada contenedor. El valor acumulado de las solicitudes de almacenamiento en todos los contenedores no puede ser mayor que el valor máximo permitido. En versiones anteriores a la 1.28.6-gke.1317000, Autopilot reduce la escala del almacenamiento efímero solicitado si el valor supera el máximo. En la versión 1.28.6-gke.1317000 y posteriores, Autopilot rechaza tu carga de trabajo.
  • Solicitudes por debajo de los mínimos: Si solicitas menos recursos que el mínimo permitido para la configuración de hardware seleccionada, Autopilot modifica automáticamente el Pod a fin de solicitar, al menos, el valor de recurso mínimo.

De forma predeterminada, cuando Autopilot ajusta automáticamente un recurso para cumplir con un valor de recurso mínimo o predeterminado, GKE asigna la capacidad adicional al primer contenedor en el manifiesto del Pod. En la versión 1.27.2-gke.2200 y posteriores de GKE, puedes indicarle a GKE que asigne los recursos adicionales a un contenedor específico si agregas lo siguiente al campo annotations en el manifiesto del Pod:

autopilot.gke.io/primary-container: "CONTAINER_NAME"

Reemplaza CONTAINER_NAME por el nombre del contenedor.

Ejemplos de modificaciones de recursos

En la siguiente situación de ejemplo, se muestra cómo Autopilot modifica la configuración de la carga de trabajo para cumplir con los requisitos de tus contenedores y Pods en ejecución.

Contenedor único con < 0.05 CPU virtuales

Cantidad de contenedores Solicitud original Solicitud modificada
1 CPU: 30 mCPU
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
CPU: 50 mCPU
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB

Varios contenedores con CPU total < 0.05 CPUs virtuales

Cantidad de contenedores Solicitudes originales Solicitudes modificadas
1 CPU: 10 mCPU
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
CPU: 30 mCPU
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
2 CPU: 10 mCPU
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
CPU: 10 mCPU
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
3 CPU: 10 mCPU
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
CPU: 10 mCPU
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
Total de recursos del Pod CPU: 50 mCPU
Memoria: 1.5 GiB
Almacenamiento efímero: 30 MiB

Un solo contenedor con memoria demasiado baja para la CPU solicitada

En este ejemplo, la memoria es demasiado baja para la cantidad de CPU (1 CPU virtual:1 GiB como mínimo). La proporción mínima permitida de CPU y memoria es 1:1. Si la proporción es menor que eso, la solicitud de memoria se incrementa.

Cantidad de contenedores Solicitud original Solicitud modificada
1 CPU: 4 vCPU
Memoria: 1 GiB
Almacenamiento efímero: 10 MiB
CPU: 4 vCPU
Memoria: 4 GiB
Almacenamiento efímero: 10 MiB
Total de recursos del Pod CPU: 4 vCPU
Memoria: 4 GiB
Almacenamiento efímero: 10 MiB

¿Qué sigue?