Acerca de las ComputeClasses integradas en GKE

En esta página, se describen las ComputeClasses que Google Kubernetes Engine (GKE) instala en tus clústeres. Obtendrás información sobre el nombre, la disponibilidad y la configuración de nodos de cada ComputeClass integrada. Esta página está dirigida a ingenieros de plataformas y operadores de apps que desean tomar una decisión fundamentada sobre qué ComputeClasses están disponibles y cuál es la clase óptima para cargas de trabajo específicas.

Ya deberías estar familiarizado con ComputeClasses.

Descripción general de las ComputeClasses integradas

Muchas cargas de trabajo de GKE son cargas de trabajo de uso general que no requieren hardware especializado, como servidores web o trabajos por lotes a pequeña escala. Para estas cargas de trabajo, la prioridad suele ser reducir la sobrecarga asociada con la administración manual de la infraestructura de nodos y la configuración de ajuste de escala automático.

GKE tiene varias ComputeClasses integradas para casos de uso, como ejecutar cargas de trabajo de Autopilot en clústeres de Standard o colocar cargas de trabajo de uso general tolerantes a errores en VMs Spot. Usa una ComputeClass integrada para cargas de trabajo que no requieran hardware específico (como GPUs) o configuración de nodos específica (como marcas sysctl de Linux). Si tus cargas de trabajo necesitan hardware más especializado, usa una ComputeClass personalizada.

ComputeClasses integradas disponibles en GKE

En la siguiente tabla, se describen las ComputeClasses integradas que están disponibles en GKE:

ComputeClasses integradas
autopilot

Crea nodos x86 a pedido que usen la plataforma de procesamiento optimizada para contenedores de Autopilot . Esta ComputeClass es la predeterminada para los clústeres de Autopilot en cualquier versión de GKE, pero está disponible para la selección explícita en versiones específicas de GKE.

Esta es una ComputeClass de Autopilot, lo que significa que GKE administra los nodos por ti, incluso en clústeres de Standard Puedes usar esta ComputeClass para ejecutar cargas de trabajo en modo Autopilot en clústeres de Standard.

Disponible en clústeres de Autopilot y clústeres de Standard que ejecutan la versión 1.34.1-gke.1829001 de GKE o versiones posteriores.

autopilot-spot

Crea VMs Spot que usen la plataforma de procesamiento optimizada para contenedores de Autopilot. Esta ComputeClass se aplica de forma predeterminada a cualquier Pod en clústeres de Autopilot que seleccionen de forma explícita VMs Spot en la especificación del Pod.

Esta es una ComputeClass de Autopilot, lo que significa que GKE administra los nodos por ti, incluso en clústeres de Standard Puedes usar esta ComputeClass para ejecutar cargas de trabajo en modo Autopilot en clústeres de Standard.

Disponible en clústeres de Autopilot y clústeres de Standard que ejecutan la versión 1.34.1-gke.1829001 de GKE o versiones posteriores.

autopilot-arm

Crea nodos Arm a pedido que usen la plataforma de procesamiento optimizada para contenedores de Autopilot . Esta plataforma no tiene generación, lo que significa que no está vinculada a una familia de máquinas específica. Esto la distingue de la especificación de una serie de máquinas como C4A, N4A o T2A. Se recomienda usar la ComputeClass autopilot-arm para cargas de trabajo de Arm de uso general.

Disponible en clústeres de Autopilot que ejecutan la versión 1.35.3-gke.1389000 de GKE o versiones posteriores. Esta función solo está disponible en las siguientes regiones: us-east1, us-west1, europe-west1, europe-west4 y us-central1.

La clase de procesamiento autopilot-arm solo está disponible a través de Autopilot.

Para ver las especificaciones de estas ComputeClasses integradas, usa el comando kubectl get:

kubectl get computeclass COMPUTECLASS_NAME -o yaml

Precios

Autopilot te factura de manera diferente según la ComputeClass que soliciten tus Pods. Para obtener más información, consulta Precios de Google Kubernetes Engine.

Selección de ComputeClass integrada en cargas de trabajo

Para seleccionar una ComputeClass integrada o personalizada cuando implementas una carga de trabajo de GKE, selecciona la etiqueta cloud.google.com/compute-class en el manifiesto de tu carga de trabajo, como en el siguiente ejemplo:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloweb
  labels:
    app: hello
spec:
  selector:
    matchLabels:
      app: hello
  template:
    metadata:
      labels:
        app: hello
    spec:
      nodeSelector:
        # Replace with the name of a compute class
        cloud.google.com/compute-class: COMPUTE_CLASS 
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: "250m"
            memory: "1Gi"

En este ejemplo, COMPUTE_CLASS es el nombre de una clase de procesamiento. No puedes seleccionar más de una ComputeClass en una carga de trabajo específica.

Cuando implementas una carga de trabajo que selecciona una ComputeClass, GKE usa las propiedades de esa ComputeClass para crear nodos nuevos para ejecutar los Pods. Por ejemplo, si seleccionas la ComputeClass integrada autopilot en una carga de trabajo, GKE ejecuta esos Pods en modo Autopilot.

Aplicación predeterminada de ComputeClasses integradas

Puedes establecer cualquier ComputeClass en un clúster como la ComputeClass predeterminada para un espacio de nombres específico o para un clúster completo. GKE aplica esa ComputeClass a cualquier Pod que no seleccione de forma explícita una ComputeClass diferente. Para establecer una ComputeClass integrada como la predeterminada, haz una de las siguientes acciones:

  • Para establecer la ComputeClass como la predeterminada del espacio de nombres, agrega una etiqueta para la ComputeClass al espacio de nombres.
  • Para establecer la ComputeClass como la predeterminada a nivel del clúster, crea una ComputeClass nueva que se llame default y que tenga las mismas reglas de prioridad que la ComputeClass integrada.

Para obtener más información sobre cómo establecer una ComputeClass como la predeterminada para un espacio de nombres o un clúster, consulta Aplica ComputeClasses a los Pods de forma predeterminada.

Por ejemplo, considera un clúster de Standard que ejecuta muchos Pods de uso general, como servidores web o trabajos por lotes pequeños. Si estableces una ComputeClass que imite la ComputeClass integrada autopilot como la predeterminada para el clúster, esas cargas de trabajo de uso general se ejecutarán en la plataforma de procesamiento optimizada para contenedores de Autopilot sin necesidad de realizar cambios en las especificaciones de la carga de trabajo. Las cargas de trabajo que necesitan hardware diferente pueden agregar un selector para una ComputeClass específica.

¿Qué sigue?