En esta página se explica cómo desplegar y escalar cargas de trabajo más rápidamente en clústeres de Google Kubernetes Engine (GKE) mediante nodos de inicio rápido. Los nodos de inicio rápido se usan en GKE con el modo Autopilot de forma óptima cuando las cargas de trabajo usan configuraciones compatibles.
Los nodos de GKE de inicio rápido tienen un tiempo de inicio significativamente menor para las familias de máquinas compatibles. El tiempo de inicio acelerado te ofrece las siguientes ventajas:
- Arranque en frío más rápido
- Autoescalado más rápido
- Latencia de cola larga de la programación de pods mejorada
- Mejora de la rentabilidad de la infraestructura
Con los nodos de inicio rápido, GKE preinicializa los recursos de hardware para acelerar el tiempo de inicio. Los recursos preinicializados están disponibles según el mejor esfuerzo posible. Es posible que las solicitudes de pico solo se sirvan parcialmente. Sin nodos de inicio rápido, los recursos se inicializan bajo demanda y los nodos se sirven con el tiempo de inicio normal.
Requisitos
Los nodos de inicio rápido no requieren ninguna configuración adicional. GKE usa automáticamente nodos de inicio rápido si tus cargas de trabajo utilizan configuraciones compatibles. Para usar nodos de inicio rápido, debes cumplir todos los requisitos siguientes:
- Usa clústeres de Autopilot o ejecuta cargas de trabajo en modo Autopilot en tus clústeres estándar.
- No utilices ninguna función que sea incompatible con los nodos de inicio rápido. Para obtener más información, consulta Limitaciones.
- Usa una de las configuraciones descritas en la siguiente tabla:
| Recurso de computación | Compatibilidad con canales de lanzamiento y versiones | Tipos y tamaños de discos de arranque admitidos |
|---|---|---|
| Plataforma de computación optimizada para contenedores de Autopilot |
|
pd-balanced discos de hasta 100 GiB |
| Serie de máquinas G2 |
|
pd-balanced discos de hasta 500 GiB |
Limitaciones
Las siguientes funciones no son compatibles con los nodos de GKE de inicio rápido. Si usas alguna de estas funciones, GKE aprovisiona nodos con el tiempo de inicio habitual:
- G2 con la
DEFAULTversión del controlador de la GPU en versiones de GKE anteriores a la 1.33.0-gke.1304000. En la versión 1.33.0-gke.1304000 o posteriores, tantoLATESTcomoDEFAULTfuncionan con nodos de inicio rápido. - Discos de arranque secundarios en versiones anteriores a la 1.33.2-gke.1015000.
- Claves de encriptado gestionadas por el cliente (CMEK)
- Máquinas virtuales de acceso puntual
- SSDs locales
- Políticas de emplazamiento
- Compatibilidad con varias redes
Cargas de trabajo de GPU de Autopilot
Si solicitas GPUs compatibles en el modo Autopilot, el tiempo de inicio de los nodos será hasta cuatro veces más rápido y el tiempo de programación de los pods será hasta dos veces más rápido que si haces solicitudes similares en el modo Standard de GKE, ya que las cargas de trabajo de GPU de Autopilot pueden usar nodos de inicio rápido.
A continuación, se muestran algunos ejemplos de casos prácticos. Sin embargo, los pods que cumplan las condiciones de la sección Requisitos son compatibles con los nodos de inicio rápido.
ComputeClass
Solicita un tipo y un número de aceleradores compatibles en una ComputeClass, como en el siguiente ejemplo:
apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
name: ACCELERATOR_COMPUTE_CLASS_NAME
spec:
priorities:
- gpu:
type: ACCELERATOR_TYPE
count: ACCELERATOR_COUNT
nodePoolAutoCreation:
enabled: true
Cuando seleccionas esta ComputeClass en un pod, como en el siguiente ejemplo, GKE usa nodos de inicio rápido:
apiVersion: v1
kind: Pod
metadata:
name: POD_NAME
spec:
nodeSelector:
# Select a ComputeClass that requests compatible GPUs
cloud.google.com/compute-class: ACCELERATOR_COMPUTE_CLASS_NAME
containers:
- name: my-container
image: gcr.io/google_containers/pause
resources:
limits:
nvidia.com/gpu: ACCELERATOR_COUNT
Sustituye los siguientes valores:
ACCELERATOR_COMPUTE_CLASS_NAME: nombre de la ComputeClass que solicita los aceleradores.ACCELERATOR_TYPE: el tipo de acelerador.ACCELERATOR_COUNT: número de aceleradores que necesita el pod. Este valor debe ser inferior o igual al valor del campospec.priorities.gpu.countde ComputeClass.POD_NAME: el nombre de tu Pod.
Para obtener más información sobre ComputeClass, consulta el artículo Acerca de las clases de cálculo personalizadas.
Especificaciones de pod
Selecciona un tipo y un número de acelerador compatibles en la especificación de tu pod, como en el siguiente ejemplo:
apiVersion: v1
kind: Pod
metadata:
name: POD_NAME
spec:
nodeSelector:
cloud.google.com/gke-accelerator: ACCELERATOR_NAME
containers:
- name: my-container
image: gcr.io/google_containers/pause
resources:
limits:
nvidia.com/gpu: ACCELERATOR_COUNT
Sustituye los siguientes valores:
POD_NAME: el nombre de tu Pod.ACCELERATOR_NAME: el nombre del acelerador que requiere el pod.ACCELERATOR_COUNT: número de aceleradores que necesita el pod.
Precios
Los nodos de inicio rápido están disponibles en Autopilot de GKE sin coste adicional. Para obtener más información sobre los precios de Autopilot de GKE, consulta la sección sobre el modo Autopilot en la página Precios de Google Kubernetes Engine.
Siguientes pasos
- Acerca de la plataforma de computación optimizada para contenedores de Autopilot
- Acerca de las clases de cálculo personalizadas
- Resumen del rendimiento de los discos persistentes