Acerca de las clases de procesamiento integradas en los clústeres de Autopilot


En esta página, se describen las clases de procesamiento integradas que están disponibles en los clústeres de Google Kubernetes Engine (GKE) Autopilot para las cargas de trabajo que tienen requisitos de hardware específicos.

Descripción general de las clases de procesamiento integradas en los clústeres de Autopilot

De forma predeterminada, los Pods en los clústeres de GKE Autopilot se ejecutan en una plataforma de procesamiento optimizada para contenedores. Esta plataforma es ideal para cargas de trabajo de uso general, como servidores web y trabajos por lotes de intensidad media. La plataforma de procesamiento optimizada para contenedores proporciona una configuración de hardware confiable, escalable y con optimización de costos que puede manejar los requisitos de la mayoría de las cargas de trabajo.

Si tienes cargas de trabajo que tienen requisitos de hardware únicos, como realizar tareas de IA o aprendizaje automático, ejecutar bases de datos de tráfico alto en tiempo real o necesitar arquitecturas y plataformas de CPU específicas, Autopilot ofrece clases de procesamiento. Estas clases de procesamiento son un subconjunto seleccionado de la serie de máquinas de Compute Engine y ofrecen flexibilidad más allá de la plataforma de procesamiento predeterminada de Autopilot. Por ejemplo, la clase de procesamiento Scale-Out usa VM que desactivan los subprocesos múltiples simultáneos y están optimizadas para escalar horizontalmente.

Puedes solicitar nodos respaldados por clases de procesamiento específicas según los requisitos de cada una de tus cargas de trabajo. De manera similar a la plataforma de procesamiento optimizada para contenedores de uso general predeterminada, Autopilot administra el tamaño y la asignación de recursos de las clases de procesamiento solicitadas en función de tus Pods en ejecución. Puedes solicitar clases de procesamiento a nivel del Pod para optimizar la rentabilidad y elegir la mejor opción para las necesidades de cada Pod.

GKE también te permite implementar clases de procesamiento de Autopilot en clústeres de GKE Standard. Puedes usar estas clases de procesamiento para ejecutar cargas de trabajo específicas en el modo Autopilot, incluso cuando el clúster esté en modo Standard. Para obtener más información, consulta Acerca de las cargas de trabajo del modo Autopilot en GKE Standard.

Clases de procesamiento personalizadas para mayor flexibilidad

Si las clases de procesamiento integradas en los clústeres de Autopilot no cumplen con los requisitos de tu carga de trabajo, puedes configurar tus propias clases de procesamiento. Puedes implementar ComputeClass CustomResources de Kubernetes en tus clústeres con conjuntos de atributos de nodos que GKE usa para configurar nodos nuevos en el clúster. Para obtener más información sobre las clases de procesamiento personalizadas, consulta Acerca de las clases de procesamiento personalizadas.

Elige una arquitectura de CPU específica

Si tus cargas de trabajo están diseñadas para plataformas o arquitecturas de CPU específicas, puedes seleccionar esas plataformas o arquitecturas en las especificaciones de tu Pod. Por ejemplo, si deseas que tus Pods se ejecuten en nodos que usan la arquitectura Arm, puedes elegir arm64 dentro de la clase de procesamiento Scale-Out.

Precios

Los precios de los Pods de GKE Autopilot se calculan según los nodos en los que se programan los Pods. A fin de obtener información sobre los precios de las cargas de trabajo de uso general y los Pods Spot en clases de procesamiento específicas, y sobre los descuentos por compromiso de uso, consulta Precios del modo Autopilot.

Los Pods Spot en clases de procesamiento de uso general o especializadas no califican para descuentos por compromiso de uso.

Cuándo usar clases de procesamiento específicas

En la siguiente tabla, se proporciona una descripción general técnica de las clases de procesamiento predefinidas que admite Autopilot y ejemplos de casos de uso de Pods que se ejecutan en cada plataforma. Si no solicitas una clase de procesamiento, Autopilot coloca tus Pods en la plataforma de procesamiento de uso general, que está diseñada para ejecutar la mayoría de las cargas de trabajo de forma óptima.

Si ninguna de estas opciones satisface tus requisitos, puedes definir y, luego, implementar tus propias clases de procesamiento personalizadas que especifiquen las propiedades de los nodos para que GKE las use cuando aumente la escala de tu clúster. Para obtener más información, consulta Acerca de las clases de procesamiento personalizadas.

Requisito de la carga de trabajo Clase de procesamiento Descripción Casos de uso de ejemplo
Cargas de trabajo que no requieren hardware específico Uso general

Autopilot usa la plataforma de procesamiento de uso general si no solicitas de manera explícita una clase de procesamiento en la especificación de tu Pod.

No puedes seleccionar de manera explícita la plataforma de uso general en tu especificación.

Con el respaldo de la serie de máquinas E2.

A veces, es posible que veas ek como la serie de máquinas de nodos en tus nodos de Autopilot. Las máquinas EK son tipos de máquinas E2 optimizados para GKE Autopilot.

  • Servidores web
  • Bases de datos pequeñas a medianas
  • Entornos de desarrollo
Cargas de trabajo que requieren GPU Accelerator
  • Los Pods pueden acceder a los recursos de procesamiento en cualquier momento
  • Sin memoria del Pod ni límites de CPU

Los tipos de GPU compatibles son los siguientes:

  • nvidia-b200: NVIDIA B200 (180 GB)
  • nvidia-h200-141gb: NVIDIA H200 (141 GB)
  • nvidia-h100-mega-80gb: NVIDIA H100 Mega (80 GB)
  • nvidia-h100-80gb: NVIDIA H100 (80 GB)
  • nvidia-a100-80gb: NVIDIA A100 (80 GB)
  • nvidia-tesla-a100: NVIDIA A100 (40 GB)
  • nvidia-l4: NVIDIA L4
  • nvidia-tesla-t4: NVIDIA T4

  • Inferencia y entrenamiento de IA/AA centradas en GPU
Solicitudes de CPU o memoria mayores que las cantidades máximas de clases de procesamiento de uso general o plataformas de CPU específicas Balanced
  • CPU disponibles: AMD EPYC Rome, AMD EPYC Milan, Intel Ice Lake, Intel Cascade Lake
  • Arquitectura disponible: amd64
  • Solicitudes de recursos compatibles más grandes que las de uso general
  • Capacidad de establecer plataformas de CPU mínimas para Pods, como “Intel Ice Lake o superior”.

Con el respaldo de las series de máquinas N2 (Intel) o las series de máquinas N2D (AMD).

  • Servidores web
  • Bases de datos medianas a grandes
  • Almacenamiento en caché
  • Transmisión y entrega de contenido multimedia
  • Capacidad de procesamiento de Hyperdisk y almacenamiento extremo
Cargas de trabajo con requisitos para series de máquinas específicas que no están cubiertas por otras clases de procesamiento Serie de máquinas específica
  • Arquitectura disponible: amd64, arm64
  • Los Pods pueden solicitar series de máquinas específicas para sus nodos
  • Sin memoria del Pod ni límites de CPU

Para obtener más información, consulta Optimiza el rendimiento de los Pods de Autopilot eligiendo una serie de máquinas.

  • Inferencia y entrenamiento de IA/AA centradas en GPU
  • Cargas de trabajo por lotes de HPC
  • Almacenamiento Hyperdisk Balanced, Throughput y Extreme
Cargas de trabajo con uso intensivo de CPU, como entrenamiento de IA/AA o computación de alto rendimiento (HPC) Performance
  • Arquitectura disponible: amd64, arm64
  • Los Pods pueden acceder a los recursos de procesamiento en cualquier momento
  • Sin memoria del Pod ni límites de CPU
  • Un Pod por nodo

Para obtener una lista de las series de máquinas de Compute Engine disponibles con la clase de procesamiento de rendimiento, consulta Series de máquinas compatibles.

  • Inferencia y entrenamiento de IA/AA centradas en GPU
  • Cargas de trabajo por lotes de HPC
  • Almacenamiento Hyperdisk Balanced, Throughput y Extreme
Procesamiento de un solo núcleo por nodo y escalamiento horizontal Scale-Out
  • CPU disponibles: Ampere Altra Arm o AMD EPYC Milan
  • Familia de máquinas de Compute Engine: T2A (Arm), T2D (x86)
  • Arquitectura disponible: arm64 o amd64
  • SMT desactivado. Una CPU virtual equivale a un núcleo físico.
  • Máximo de 3.5 GHz de reloj

Con el respaldo de las series de máquinas Tau T2A (Arm) o las series de máquinas Tau T2D (x86).

  • Servidores web
  • Microservicios en contenedores
  • Procesamiento de registros de datos
  • Apps de Java a gran escala
  • Almacenamiento Hyperdisk Throughput

Cómo seleccionar una clase de procesamiento en Autopilot

Si deseas obtener instrucciones detalladas, consulta Elige clases de procesamiento para Pods de Autopilot.

Para indicarle a Autopilot que coloque tus Pods en una clase de procesamiento específica, especifica la etiqueta cloud.google.com/compute-class en un nodeSelector o una regla de afinidad de nodos, como en los siguientes ejemplos:

nodeSelector

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-app
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: hello-app
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          nodeSelector:
            cloud.google.com/compute-class: "COMPUTE_CLASS"
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            resources:
              requests:
                cpu: "2000m"
                memory: "2Gi"
    

Reemplaza COMPUTE_CLASS por el nombre de la clase de procesamiento según tu caso de uso, como Scale-Out. Si seleccionas Accelerator, también debes especificar una GPU compatible. Para obtener instrucciones, consulta Implementa cargas de trabajo de GPU en Autopilot. Si seleccionas Performance, también puedes seleccionar una serie de máquinas de Compute Engine en el selector de nodos. Si no especificas una serie de máquinas, GKE usa la serie de máquinas C4 según la disponibilidad regional. Para obtener instrucciones, consulta Ejecuta cargas de trabajo de uso intensivo de CPU con un rendimiento óptimo.

nodeAffinity

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-app
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: hello-app
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          terminationGracePeriodSeconds: 25
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            resources:
              requests:
                cpu: "2000m"
                memory: "2Gi"
                ephemeral-storage: "1Gi"
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                - matchExpressions:
                  - key: cloud.google.com/compute-class
                    operator: In
                    values:
                    - "COMPUTE_CLASS"
      

Reemplaza COMPUTE_CLASS por el nombre de la clase de procesamiento según tu caso de uso, como Scale-Out. Si seleccionas Accelerator, también debes especificar una GPU compatible. Para obtener instrucciones, consulta Implementa cargas de trabajo de GPU en Autopilot. Si seleccionas Performance, también puedes seleccionar una serie de máquinas de Compute Engine en el selector de nodos. Si no especificas una serie de máquinas, GKE usa la serie de máquinas C4 según la disponibilidad regional. Para obtener instrucciones, consulta Ejecuta cargas de trabajo de uso intensivo de CPU con un rendimiento óptimo.

Cuando implementas la carga de trabajo, Autopilot hace lo siguiente:

  • Aprovisiona de forma automática los nodos respaldados por la configuración especificada para ejecutar tus Pods.
  • Agrega automáticamente taints a los nodos nuevos para evitar que otros Pods se programen en esos nodos. Los taints son únicos para cada clase de procesamiento. Si también seleccionas una arquitectura de CPU, GKE agrega un taint independiente a esa arquitectura.
  • Agrega automáticamente tolerancias correspondientes a los taints aplicados a tus Pods implementados, lo que permite que GKE coloque esos Pods en los nodos nuevos.

Por ejemplo, si solicitas la clase de procesamiento Scale-Out para un Pod:

  1. Autopilot agrega un taint específico a Scale-Out para esos nodos.
  2. Autopilot agrega una tolerancia para ese taint a los Pods Scale-Out.

Los Pods que no solicitan Scale-Out no recibirán la tolerancia. Como resultado, GKE no programará esos Pods en los nodos Scale-Out.

Si no solicitas de manera explícita una clase de procesamiento en tu especificación de carga de trabajo, Autopilot programa Pods en nodos que usan la clase de procesamiento de uso general predeterminada. La mayoría de las cargas de trabajo pueden ejecutarse sin problemas en la clase de procesamiento de uso general.

Cómo solicitar una arquitectura de CPU

En algunos casos, tus cargas de trabajo pueden compilarse para una arquitectura específica, como Arm. Algunas clases de procesamiento, como balanceada o de escalamiento horizontal, admiten varias arquitecturas de CPU. Puedes solicitar una arquitectura específica junto con tu solicitud de clase de procesamiento si especificas una etiqueta en tu selector de nodos o en la regla de afinidad de nodos, como en el siguiente ejemplo:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-arm
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx-arm
  template:
    metadata:
      labels:
        app: nginx-arm
    spec:
      nodeSelector:
        cloud.google.com/compute-class: COMPUTE_CLASS
        kubernetes.io/arch: ARCHITECTURE
      containers:
      - name: nginx-arm
        image: nginx
        resources:
          requests:
            cpu: 2000m
            memory: 2Gi

Reemplaza ARCHITECTURE por la arquitectura de CPU que desees, como arm64 o amd64.

Si no solicitas una arquitectura de manera explícita, Autopilot usa la arquitectura predeterminada de la clase de procesamiento especificada.

Arquitectura de Arm en Autopilot

Autopilot admite solicitudes de nodos que usan la arquitectura de CPU Arm. Los nodos Arm son más rentables que los nodos x86 similares y ofrecen mejoras de rendimiento. Si deseas obtener instrucciones para solicitar nodos de Arm, consulta Implementa cargas de trabajo de Autopilot en la arquitectura de Arm.

Asegúrate de usar las imágenes correctas en tus implementaciones. Si tus Pods usan imágenes de Arm y no solicitas nodos de Arm, Autopilot programa los Pods en nodos x86 y los Pods fallarán. Del mismo modo, si usas imágenes x86 por accidente, pero solicitas nodos Arm para los Pods, los Pods fallarán.

Validaciones de Autopilot para cargas de trabajo de clases de procesamiento

Autopilot valida los manifiestos de la carga de trabajo para garantizar que la clase de procesamiento y las solicitudes de arquitectura en el selector de nodos o las reglas de afinidad de nodos tengan el formato correcto. Se aplican las siguientes reglas:

  • No más de una clase de procesamiento.
  • No hay clases de procesamiento no compatibles.
  • La versión de GKE debe ser compatible con la clase de procesamiento.
  • No más de una arquitectura seleccionada.
  • La clase de procesamiento debe admitir la arquitectura seleccionada.

Si el manifiesto de tu carga de trabajo falla en alguna de estas validaciones, Autopilot rechaza la carga de trabajo.

Disponibilidad regional de la clase de procesamiento

En la siguiente tabla, se describen las regiones en las que están disponibles las clases de procesamiento y arquitecturas de las CPU específicas:

Disponibilidad de la clase de procesamiento
Uso general Todas las regiones
Balanced Todas las regiones
Performance Todas las regiones que contienen una serie de máquinas compatible.
Scale-Out Todas las regiones que contienen una serie de máquinas de Compute Engine correspondiente. Para ver la disponibilidad de series de máquinas específicas, usa los filtros en Regiones y zonas disponibles.

Si una clase de procesamiento está disponible en una región específica, el hardware está disponible en al menos dos zonas en esa región.

Solicitudes de recursos predeterminadas, mínimas y máximas

Cuando elijas una clase de procesamiento para tus cargas de trabajo de Autopilot, asegúrate de especificar solicitudes de recursos que cumplan con las solicitudes mínimas y máximas de esa clase de procesamiento. A fin de obtener información sobre las solicitudes predeterminadas y las solicitudes mínimas y máximas para cada clase de procesamiento, consulta Solicitudes y límites de recursos en GKE Autopilot.

¿Qué sigue?