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 updatepara 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
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
Implementa la infraestructura con el blueprint
examples/gke-managed-lustre.yamldel 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.
Configura
kubectlpara 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?
- Obtén más información sobre el controlador de CSI de Managed Lustre.
- Explora el catálogo de planos de Cluster Toolkit.
- Aprende a crear una clase de almacenamiento de GKE.
- Obtén más información para crear y usar un volumen respaldado por Managed Lustre.