Aprovisiona Lustre administrado en GKE con Cluster Toolkit

En este documento, se explica cómo integrar Managed Lustre con GKE para crear un entorno optimizado para cargas de trabajo exigentes y con uso intensivo de datos, como la inteligencia artificial (IA), el aprendizaje automático (AA) y la computación de alto rendimiento (HPC), con Cluster Toolkit.

En este documento, aprovisionarás un clúster de GKE y una instancia de Managed Lustre de forma declarativa con Cluster Toolkit, configurarás automáticamente el controlador CSI de Managed Lustre y los recursos de PersistentVolume de Kubernetes, y ejecutarás una carga de trabajo de muestra en el clúster.

Este documento está dirigido a ingenieros de aprendizaje automático (AA) y especialistas en datos y en IA que estén interesados en explorar las capacidades de organización de contenedores de Kubernetes respaldadas por instancias de Managed Lustre. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que se hace referencia en el contenido de Google Cloud , consulta Roles y tareas comunes del usuario de GKE.

Fondo

En esta sección, se describen las tecnologías clave que se usan en este documento.

Cluster Toolkit

Cluster Toolkit es una herramienta de código abierto que simplifica la implementación y la administración de entornos de IA/AA y HPC en Google Cloud. Cluster Toolkit usa planos declarativos y modulares para automatizar el aprovisionamiento de clústeres de GKE, redes, aceleradores de procesamiento y almacenamiento de alto rendimiento.

Para obtener más información, consulta la descripción general de Cluster Toolkit.

Managed Lustre

Managed Lustre es un servicio de sistema de archivos paralelos de alto rendimiento diseñado para cargas de trabajo exigentes. El controlador de CSI de Managed Lustre te permite integrar instancias de Managed Lustre con GKE, con PersistentVolumeClaims (PVC) y PersistentVolumes (PV) estándar de Kubernetes. Este controlador es especialmente beneficioso para las cargas de trabajo de IA/AA y HPC que requieren almacenamiento persistente, escalable y de alto rendimiento.

Para obtener más información, consulta Acerca del controlador CSI de Managed Lustre.

Opciones de consumo del acelerador

Las VMs de inicio flexible y VM Spot te permiten optimizar el aprovisionamiento de procesamiento, ya que pagas solo por los recursos que necesitas. Para obtener más información, consulta Acerca de las opciones de consumo de aceleradores para cargas de trabajo de IA/AA en GKE.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Cloud Managed Lustre y la API de Google Kubernetes Engine.
  • Habilita las APIs
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste la gcloud CLI, ejecuta el comando gcloud components update para obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos que se indican en este documento.

Prepara el entorno

  1. Configura Cluster Toolkit.

  2. Configura las variables de entorno predeterminadas y obtén la dirección IP de tu máquina de implementación:

    gcloud config set project PROJECT_ID
    export PROJECT_ID=$(gcloud config get project)
    export REGION=REGION
    export ZONE=ZONE
    export DEPLOYMENT_NAME=DEPLOYMENT_NAME
    export AUTHORIZED_CIDR="$(curl -s ifconfig.me)/32"
    

    Reemplaza los siguientes valores:

    • PROJECT_ID: Es el ID del proyecto de Google Cloud .
    • REGION: Es la región de tu implementación, por ejemplo, us-central1.
    • ZONE: Es una zona que admite Managed Lustre, por ejemplo, us-central1-a.
    • DEPLOYMENT_NAME: El nombre de tu implementación.

Implementa el clúster y el almacenamiento

  1. Implementa la infraestructura con el blueprint examples/gke-managed-lustre.yaml del repositorio de Cluster Toolkit:

    gcluster deploy examples/gke-managed-lustre.yaml \
        --vars project_id=${PROJECT_ID},deployment_name=${DEPLOYMENT_NAME},region=${REGION},zone=${ZONE},authorized_cidr=${AUTHORIZED_CIDR}
    

    Cluster Toolkit aprovisiona la VPC, crea la instancia de Managed Lustre, aprovisiona el clúster de GKE con el controlador de CSI de Managed Lustre habilitado y crea los objetos PersistentVolume y PersistentVolumeClaim de Kubernetes.

  2. Configura kubectl para acceder a tu clúster nuevo:

    gcloud container clusters get-credentials ${DEPLOYMENT_NAME} \
        --zone=${ZONE} \
        --project=${PROJECT_ID}
    

Ejecuta una carga de trabajo con Managed Lustre

Envía una carga de trabajo que active el volumen de Managed Lustre con el comando gcluster job submit. Para obtener más información sobre las opciones de envío de trabajos, consulta la Guía de envío de trabajos de Cluster Toolkit.

gcluster job submit \
    --name="test-lustre-$(date +%H%M)" \
    --cluster=${DEPLOYMENT_NAME} \
    --project=${PROJECT_ID} \
    --location=${ZONE} \
    --compute-type=n2-standard-16 \
    --image=ubuntu:latest \
    --command="df -h && echo 'Hello from Managed Lustre on GKE' > /lustre-data/hello.txt && cat /lustre-data/hello.txt" \
    --mount="gke-lustre-instance-pvc;/lustre-data;rw"

Para inspeccionar los registros de la carga de trabajo y el estado de ejecución, usa el comando gcluster job logs:

gcluster job logs "test-lustre-$(date +%H%M)" \
    --cluster=${DEPLOYMENT_NAME} \
    --project=${PROJECT_ID} \
    --location=${ZONE}

El resultado es similar a lo siguiente:

Filesystem                Size  Used Avail Use% Mounted on
overlay                   193G   11G  183G   6% /
tmpfs                      64M     0   64M   0% /dev
10.8.68.5@tcp://lustrefs   35T   22M   35T   1% /lustre-data
shm                        64M     0   64M   0% /dev/shm
Hello from Managed Lustre on GKE

Realiza una limpieza

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en este documento, borra la implementación con Cluster Toolkit:

gcluster destroy ${DEPLOYMENT_NAME}

¿Qué sigue?