Solicitudes de recursos en Autopilot


En esta página, se describen las solicitudes de recursos máximas, mínimas y predeterminadas que puedes especificar para tus cargas de trabajo de Google Kubernetes Engine (GKE) Autopilot y cómo Autopilot modifica esas solicitudes automáticamente a fin de mantener la estabilidad de las cargas de trabajo.

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 modifica tus solicitudes de carga de trabajo.
  • 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 valores predeterminados, mínimos y máximos diferentes para contenedores en DaemonSets.

Cómo solicitar recursos

En Autopilot, solicita recursos en la especificación de tu 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
Uso general CPU 0.5 CPU virtual
Memoria 2 GiB
Equilibrado CPU 0.5 CPU virtual
Memoria 2 GiB
Rendimiento CPU
  • Serie de máquinas C3: 2 CPUs virtuales
  • Serie de máquinas C3 con SSD local: 2 CPUs virtuales
  • Serie de máquinas C3D: 2 CPUs virtuales
  • Serie de máquinas C3D con SSD local: 4 CPUs virtuales
  • Serie de máquinas H3: 80 CPUs virtuales
  • Serie de máquinas C2: 2 CPUs virtuales
  • Serie de máquinas C2D: 2 CPUs virtuales
  • Serie de máquinas T2A: 2 CPUs virtuales
  • Serie de máquinas T2D: 2 CPUs virtuales
Memoria
  • Serie de máquinas C3: 8 GiB
  • Serie de máquinas C3 con SSD local: 8 GiB
  • Serie de máquinas C3D: 8 GiB
  • Serie de máquinas C3D con SSD local: 16 GiB
  • Serie de máquinas H3: 320 GiB
  • Serie de máquinas C2: 8 GiB
  • Serie de máquinas C2D: 8 GiB
  • Serie de máquinas T2A: 8 GiB
  • Serie de máquinas T2D: 8 GiB
Almacenamiento efímero
  • Serie de máquinas C3: 1 GiB
  • Serie de máquinas C3 con SSD local: 1 GiB
  • Serie de máquinas C3D: 1 GiB
  • Serie de máquinas C3D con SSD local: 1 GiB
  • Serie de máquinas H3: 1 GiB
  • Serie de máquinas C2: 1 GiB
  • Serie de máquinas C2D: 1 GiB
  • Serie de máquinas T2A: 1 GiB
  • Serie de máquinas T2D: 1 GiB
Escalar horizontalmente CPU 0.5 CPU virtual
Memoria 2 GiB

Solicitudes predeterminadas para otras configuraciones de hardware

Autopilot aplica los siguientes valores predeterminados a recursos que no están definidos en la especificación de Pods que se ejecutan en nodos con hardware especializado, como las GPU:

Hardware Recurso Solicitud predeterminada total
GPUs H100 (80 GB)
nvidia-h100-80gb
CPU
  • 8 GPUs: 200 CPUs virtuales
Memoria
  • 8 GPUs: 1400 GiB
Almacenamiento efímero
  • 8 GPUs: 1 GiB
GPUs A100 (40 GB)
nvidia-tesla-a100
CPU
  • 1 GPU: 9 CPUs virtuales
  • 2 GPUs: 20 CPUs virtuales
  • 4 GPUs: 44 CPUs virtuales
  • 8 GPUs: 92 CPUs virtuales
  • 16 GPUs: 92 vCPU
Memoria
  • 1 GPU: 60 GiB
  • 2 GPUs: 134 GiB
  • 4 GPUs: 296 GiB
  • 8 GPUs: 618 GiB
  • 16 GPU: 1250 GiB
GPU A100 (80 GB)
nvidia-a100-80gb
CPU
  • 1 GPU: 9 CPUs virtuales
  • 2 GPUs: 20 CPUs virtuales
  • 4 GPUs: 44 CPUs virtuales
  • 8 GPUs: 92 CPUs virtuales
Memoria
  • 1 GPU: 134 GiB
  • 2 GPUs: 296 GiB
  • 4 GPUs: 618 GiB
  • 8 GPUs: 1250 GiB
Almacenamiento efímero
  • 1 GPU: 1 GiB
  • 2 GPUs: 1 GiB
  • 4 GPUs: 1 GiB
  • 8 GPUs: 1 GiB
GPUs L4
nvidia-l4
CPU
  • 1 GPU: 2 CPUs virtuales
  • 2 GPUs: 21 CPUs virtuales
  • 4 GPUs: 45 CPUs virtuales
  • 8 GPUs: 93 CPUs virtuales
Memoria
  • 1 GPU: 7 GiB
  • 2 GPUs: 78 GiB
  • 4 GPUs: 170 GiB
  • 8 GPUs: 355 GiB
GPUs T4
nvidia-tesla-t4
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:

  • La solicitud de almacenamiento efímero debe estar entre 10 MiB y 10 GiB para todas las clases de procesamiento y configuraciones de hardware, a menos que se especifique lo contrario. Para los volúmenes más grandes, se recomienda usar volúmenes efímeros genéricos que proporcionen una funcionalidad y un rendimiento equivalentes al almacenamiento efímero, pero con una flexibilidad mucho mayor, 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 de CPU 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 aumentos de actividad, consulta Disponibilidad de aumentos de actividad en GKE.

  • La proporción entre 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 de forma automática 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
Uso general Entre 1:1 y 1:6.5 CPU

El valor depende de si tu clúster admite aumentos de actividad, 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 aumentos de actividad, consulta Disponibilidad de aumentos de actividad en GKE.

30 CPU virtuales
Memoria

El valor depende de si tu clúster admite aumentos de actividad, de la siguiente manera:

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

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

110 GiB
Equilibrado Entre 1:1 y 1:8 CPU 0.25 CPU virtuales

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 de Intel: 823 GiB
  • Plataformas AMD: 851 GiB
Rendimiento N/A CPU 0.001 CPU virtual
  • 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 H3: 86 CPUs virtuales
  • Serie de máquinas C2: 58 CPUs virtuales
  • Serie de máquinas C2D: 110 CPUs virtuales
  • Serie de máquinas T2A: 46 CPUs virtuales
  • Serie de máquinas T2D: 58 CPUs virtuales
Memoria 1 MiB
  • 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 H3: 330 GiB
  • Serie de máquinas C2: 218 GiB
  • Serie de máquinas C2D: 835 GiB
  • Serie de máquinas T2A: 172 GiB
  • Serie de máquinas T2D: 218 GiB
Almacenamiento efímero 10 MiB
  • Serie de máquinas C3: 250 GiB
  • Serie de máquinas C3 con SSD local: 10,000 GiB
  • Serie de máquinas C3D: 250 GiB
  • Serie de máquinas C3D con SSD local: 10,000 GiB
  • Serie de máquinas H3: 250 GiB
  • Serie de máquinas C2: 250 GiB
  • Serie de máquinas C2D: 250 GiB
  • Serie de máquinas T2A: 250 GiB
  • Serie de máquinas T2D: 250 GiB
Escalar horizontalmente 1:4 CPU 0.25 CPU virtuales
  • 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 otras configuraciones de hardware

En la siguiente tabla, se describe la proporción de CPU y memoria mínima, máxima y permitida para los Pods que se ejecutan en nodos con hardware específico, como las GPU. A menos que se especifique, el almacenamiento efímero máximo admitido es de 122 GiB en las versiones 1.28.6-gke.1369000 o posteriores, y 1.29.1-gke.1575000 o posteriores. Para las versiones anteriores, el almacenamiento efímero máximo admitido es de 10 GiB.

Hardware Proporción de CPU:memoria (CPU virtual:GiB) Recurso Mínimo Máximo
GPUs H100 (80 GB)
nvidia-h100-80gb
No aplicada CPU
  • 8 GPUs: 0.001 CPUs virtuales
  • 8 GPUs: 206 CPUs virtuales
Memoria
  • 8 GPUs: 1 MiB
  • 8 GPUs: 1795 GiB
Almacenamiento efímero
  • 8 GPUs: 10 MiB
  • 8 GPUs: 5250 GiB
GPUs A100 (40 GB)
nvidia-tesla-a100
No aplicada CPU
  • 1 GPU: 9 CPUs virtuales
  • 2 GPUs: 20 CPUs virtuales
  • 4 GPUs: 44 CPUs virtuales
  • 8 GPUs: 92 CPUs virtuales
  • 16 GPUs: 92 CPUs virtuales
  • 1 GPU: 11 CPUs virtuales
  • 2 GPUs: 22 CPUs virtuales
  • 8 GPUs: 94 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 CPU virtuales.

Memoria
  • 1 GPU: 60 GiB
  • 2 GPUs: 134 GiB
  • 4 GPUs: 296 GiB
  • 8 GPUs: 618 GiB
  • 16 GPU: 1250 GiB
  • 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.

GPU A100 (80 GB)
nvidia-a100-80gb
No aplicada CPU
  • 1 GPU: 9 CPUs virtuales
  • 2 GPUs: 20 CPUs virtuales
  • 4 GPUs: 44 CPUs virtuales
  • 8 GPUs: 92 CPUs virtuales
  • 1 GPU: 11 CPUs virtuales
  • 2 GPUs: 22 CPUs virtuales
  • 8 GPUs: 94 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: 134 GiB
  • 2 GPUs: 296 GiB
  • 4 GPUs: 618 GiB
  • 8 GPUs: 1250 GiB
  • 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: 512 MiB
  • 2 GPUs: 512 MiB
  • 4 GPUs: 512 MiB
  • 8 GPUs: 512 MiB
  • 1 GPU: 280 GiB
  • 2 GPUs: 585 GiB
  • 4 GPUs: 1220 GiB
  • 8 GPUs: 2540 GiB
GPUs L4
nvidia-l4
  • 1 GPU: entre 1:3.5 y 1:4
  • 2, 4 y 8 GPUs: no se aplican
CPU
  • 1 GPU: 2 CPUs virtuales
  • 2 GPUs: 21 CPUs virtuales
  • 4 GPUs: 45 CPUs virtuales
  • 8 GPUs: 93 CPUs virtuales
  • 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: 7 GiB
  • 2 GPUs: 78 GiB
  • 4 GPUs: 170 GiB
  • 8 GPUs: 355 GiB
  • 1 GPU: 115 GiB
  • 2 GPUs: 86 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.

GPUs T4
nvidia-tesla-t4
Entre 1:1 y 1:6.25 CPU 0.5 CPU virtual
  • 1 GPU: 46 CPUs virtuales
  • 2 GPUs: 46 CPUs virtuales
  • 4 GPUs: 94 CPUs virtuales
Memoria 0.5 GiB
  • 1 GPU: 287.5 GiB
  • 2 GPUs: 287.5 GiB
  • 4 GPU: 587.5 GiB

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 la expulsión y la programación de Kubernetes mediante 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 de recursos que puedes especificar. Si una configuración o clase de procesamiento no está en esta tabla, Autopilot no aplica valores especiales mínimos o 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 vCPU 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 en serie y deben completarse antes de que se inicien los contenedores de la aplicación. Si no especificas solicitudes de recursos para tus contenedores init de Autopilot, GKE asigna los recursos totales disponibles para el Pod a cada contenedor init. Este comportamiento es diferente del de GKE Standard, en el que cada contenedor init puede usar cualquier recurso sin asignar disponible en el nodo en el que está programado el Pod.

A diferencia de los contenedores de aplicaciones, GKE recomienda que no especifiques solicitudes de recursos para contenedores init de Autopilot, de modo que cada contenedor obtenga los recursos completos disponibles para el Pod. Si solicitas menos recursos que los predeterminados, limitarás tu contenedor init. Si solicitas más recursos que los valores predeterminados de Autopilot, puedes aumentar la factura durante la vida útil del Pod.

Configura límites de recursos en Autopilot

Kubernetes te permite configurar requests y limits para los recursos de la especificación del pod. El comportamiento de los Pods cambia en función de si el limits es diferente de la 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 aumentos de actividad, 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 limits igual a requests.

Para verificar si tu clúster admite aumentos de actividad, consulta Disponibilidad de aumentos 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 aumentos de actividad, de la siguiente manera:

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

Para verificar si tu clúster admite aumentos de actividad, consulta Disponibilidad de aumentos 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 aumentos de actividad, de la siguiente manera:

  • Clústeres que admiten aumentos de actividad: Autopilot no configura limits.
  • Clústeres que no admiten aumentos de actividad: GKE establece limits igual a requests.

Para verificar si tu clúster admite aumentos de actividad, consulta Disponibilidad de aumentos 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. Autopilot reduce la escala de la solicitud si el valor supera el máximo.
  • 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 escala automáticamente un recurso para cumplir con un valor 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 con 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.5 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 mvCPU
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

Varios contenedores con más de 0.25 CPU virtuales en total

En varios contenedores con un total de recursos >= 0.25 CPU virtuales, la CPU se redondea a múltiplos de 0.25 CPU virtuales y se agrega la CPU adicional al primer contenedor. En este ejemplo, la CPU acumulada original es de 0.32 CPU virtuales y se modifica a un total de 0.5 CPU virtuales.

Cantidad de contenedores Solicitudes originales Solicitudes modificadas
1 CPU: 0.17 CPU virtuales
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
CPU: 0.35 CPU virtuales
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
2 CPU: 0.08 CPU virtuales
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
CPU: 0.08 CPU virtuales
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
3 CPU: 0.07 CPU virtuales
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
CPU: 0.07 CPU virtuales
Memoria: 0.5 GiB
Almacenamiento efímero: 10 MiB
4 Contenedor init, recursos no definidos Recibirá recursos del Pod
Total de recursos del Pod CPU: 0.5 CPU virtuales
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 CPU virtuales
Memoria: 1 GiB
Almacenamiento efímero: 10 MiB
CPU: 4 CPU virtuales
Memoria: 4 GiB
Almacenamiento efímero: 10 MiB
Total de recursos del Pod CPU: 4 CPU virtuales
Memoria: 4 GiB
Almacenamiento efímero: 10 MiB

¿Qué sigue?