Puedes usar Balanced
y Scale-Out
ComputeClasses en clústeres Autopilot de Google Kubernetes Engine (GKE) para ejecutar cargas de trabajo que requieran capacidad de computación adicional o configuraciones de CPU especializadas. Esta página está dirigida a administradores de clústeres que quieran tener opciones de computación más flexibles que las que ofrece la configuración predeterminada de los clústeres Autopilot.
Información general sobre las clases de Compute equilibradas y de escalado horizontal
De forma predeterminada, los pods de los clústeres de Autopilot de GKE se ejecutan en una plataforma de computación optimizada para contenedores. Esta plataforma es ideal para cargas de trabajo de uso general, como servidores web y tareas por lotes de intensidad media. La plataforma de computación optimizada para contenedores proporciona una configuración de hardware fiable, escalable y optimizada para los costes que puede gestionar los requisitos de la mayoría de las cargas de trabajo.
Si tienes cargas de trabajo con requisitos de hardware únicos (como realizar tareas de aprendizaje automático o de IA, ejecutar bases de datos de alto tráfico en tiempo real o necesitar plataformas y arquitecturas de CPU específicas), puedes usar ComputeClasses para aprovisionar ese hardware.
En los clústeres de Autopilot, GKE proporciona las siguientes ComputeClasses seleccionadas que te permiten ejecutar pods que necesitan más flexibilidad que la plataforma de computación optimizada para contenedores predeterminada:
Balanced
: ofrece una capacidad máxima de CPU y memoria superior a la de la plataforma de computación optimizada para contenedores.Scale-Out
: inhabilita la multihilo simultánea (SMT) y está optimizado para escalar horizontalmente.
Estas ComputeClasses solo están disponibles en clústeres de Autopilot. Al igual que la plataforma de computación optimizada para contenedores predeterminada, Autopilot gestiona el tamaño de los nodos y la asignación de recursos en función de los pods en ejecución.
ComputeClasses personalizados para mayor flexibilidad
Si las ComputeClasses Balanced o Scale-Out de los clústeres Autopilot no cumplen los requisitos de tu carga de trabajo, puedes configurar tus propias ComputeClasses.
Despliega recursos personalizados de Kubernetes de ComputeClass en tus clústeres con conjuntos de atributos de nodo que GKE usa para configurar nodos nuevos en el clúster. Estas ComputeClasses personalizadas pueden permitirte, por ejemplo, desplegar cargas de trabajo en el mismo hardware que las ComputeClasses Balanced
o Scale-Out
en cualquier clúster Estándar o Autopilot de GKE. Para obtener más información, consulta Acerca de las cargas de trabajo del modo Autopilot en GKE Standard.
Precios
Los pods que usan las ComputeClasses Balanced
o Scale-Out
se facturan según los siguientes SKUs:
Para obtener más información, consulta los precios de GKE.
Detalles técnicos de Balanced y Scale-Out
En esta sección se describen los tipos de máquinas y los casos prácticos de las clases Balanced
y Scale-Out
. Si no solicitas una ComputeClass en tus pods, Autopilot colocará los pods en la plataforma de computación optimizada para contenedores de forma predeterminada. A veces, puede que veas ek
como la serie de máquinas de nodos en tus nodos de Autopilot que usan la plataforma de computación optimizada para contenedores. Las máquinas EK son tipos de máquinas E2 exclusivos de Autopilot.
En la siguiente tabla se ofrece una descripción técnica general de las clases de cálculo Balanced
y Scale-Out
.
ComputeClasses equilibrados y escalables horizontalmente | ||
---|---|---|
Balanced |
Proporciona más capacidad de CPU y de memoria que los máximos de la plataforma de computación optimizada para contenedores. Proporciona plataformas de CPU adicionales y la posibilidad de definir plataformas de CPU mínimas para pods, como Intel Ice Lake o versiones posteriores.
Usa la clase
|
|
Scale-Out |
Proporciona computación de un solo subproceso por núcleo y escalado horizontal.
Usa la clase
|
Selección de ComputeClass en cargas de trabajo
Para usar una ComputeClass en una carga de trabajo de GKE, selecciona la ComputeClass en el manifiesto de la carga de trabajo mediante un selector de nodos para la etiqueta cloud.google.com/compute-class
.
En el siguiente ejemplo de manifiesto de Deployment se selecciona un ComputeClass:
Sustituye COMPUTE_CLASS
por el nombre de un ComputeClass, como Balanced
o Scale-Out
. Puedes seleccionar un máximo de un ComputeClass
en una carga de trabajo.
Cuando despliegas la carga de trabajo, GKE hace lo siguiente:
- Aprovisiona automáticamente nodos respaldados por la configuración especificada para ejecutar tus pods.
- Añade automáticamente etiquetas de nodo y taints a los nodos nuevos para evitar que otros pods se programen en esos nodos. Las taints son únicas para cada ComputeClass. Si también seleccionas una arquitectura de CPU, GKE añade un taint independiente exclusivo de esa arquitectura.
- Añade automáticamente tolerancias correspondientes a las intolerancias aplicadas a tus pods implementados, lo que permite que GKE coloque esos pods en los nuevos nodos.
Por ejemplo, si solicitas la clase de cálculo Scale-Out
para un pod:
- Autopilot añade un taint específico de
Scale-Out
a esos nodos. - Autopilot añade una tolerancia para ese taint a los pods
Scale-Out
.
Los pods que no soliciten Scale-Out
no obtendrán la tolerancia. Por lo tanto, GKE no programará esos pods en los nodos Scale-Out
.
Si no solicitas explícitamente una ComputeClass en la especificación de tu carga de trabajo, Autopilot programa los pods en nodos que usan la plataforma de computación optimizada para contenedores predeterminada. La mayoría de las cargas de trabajo de uso general se pueden ejecutar sin problemas en esta plataforma.
Cómo solicitar una arquitectura de CPU
En algunos casos, es posible que tus cargas de trabajo se hayan creado para una arquitectura específica, como Arm. Scale-Out ComputeClass admite varias arquitecturas de CPU. Puedes solicitar una arquitectura específica junto con tu solicitud de ComputeClass especificando una etiqueta en tu selector de nodos o en tu 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
Sustituye ARCHITECTURE
por la arquitectura de CPU que quieras, como arm64
o amd64
. Puedes seleccionar un máximo de una arquitectura en tu carga de trabajo. La ComputeClass que selecciones debe ser compatible con la arquitectura que hayas especificado.
Si no solicitas explícitamente una arquitectura, Autopilot usará la arquitectura predeterminada de ComputeClass.
Arquitectura 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 en el rendimiento. Para obtener instrucciones sobre cómo solicitar nodos Arm, consulta el artículo Desplegar cargas de trabajo de Autopilot en la arquitectura Arm.
Asegúrate de que usas las imágenes correctas en tus implementaciones. Si tus pods usan imágenes de Arm y no solicitas nodos de Arm, Autopilot programará los pods en nodos x86 y los pods fallarán. Del mismo modo, si usas imágenes x86 por error, pero solicitas nodos Arm para los pods, estos fallarán.
Peticiones de recursos predeterminadas, mínimas y máximas
Cuando elijas una ComputeClass para tus cargas de trabajo de Autopilot, asegúrate de especificar solicitudes de recursos que cumplan los requisitos mínimos y máximos de esa ComputeClass. Para obtener información sobre las solicitudes predeterminadas, así como las solicitudes mínimas y máximas de cada ComputeClass, consulta Solicitudes y límites de recursos en Autopilot de GKE.
Siguientes pasos
- Consulta cómo seleccionar ComputeClasses específicos en tus cargas de trabajo de Autopilot.
- Consulta información sobre las solicitudes de recursos predeterminadas, mínimas y máximas de cada plataforma.