Este documento explica como integrar o Managed Lustre ao GKE para criar um ambiente otimizado para cargas de trabalho exigentes e com uso intensivo de dados, como inteligência artificial (IA), machine learning (ML) e computação de alto desempenho (HPC), usando o Cluster Toolkit.
Neste documento, você vai provisionar um cluster do GKE e uma instância do Managed Lustre de forma declarativa com o Cluster Toolkit, configurar automaticamente o driver CSI do Managed Lustre e os recursos PersistentVolume do Kubernetes e executar uma carga de trabalho de amostra no cluster.
Este documento é destinado a engenheiros de machine learning (ML) e especialistas em dados e IA que querem conhecer os recursos de orquestração de contêineres do Kubernetes com suporte de instâncias do Managed Lustre. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo do Google Cloud , consulte Tarefas e papéis de usuário comuns do GKE.
Contexto
Esta seção descreve as principais tecnologias usadas neste documento.
Cluster Toolkit
O Cluster Toolkit é uma ferramenta de código aberto que simplifica a implantação e o gerenciamento de ambientes de IA/ML e HPC no Google Cloud. O Cluster Toolkit usa projetos modulares e declarativos para automatizar o provisionamento de clusters do GKE, redes, aceleradores de computação e armazenamento de alta performance.
Para mais informações, consulte a visão geral do Cluster Toolkit.
Managed Lustre
O Managed Lustre é um serviço de sistema de arquivos paralelo de alto desempenho projetado para cargas de trabalho exigentes. O driver CSI do Managed Lustre permite integrar instâncias do Managed Lustre ao GKE usando PersistentVolumeClaims (PVCs) e PersistentVolumes (PVs) padrão do Kubernetes . Esse driver é especialmente útil para cargas de trabalho de IA/ML e HPC que exigem armazenamento persistente, escalonável e de alta capacidade.
Para mais informações, consulte Sobre o driver CSI do Lustre gerenciado.
Opções de consumo do acelerador
Com as VMs de início flexível e as VMs spot, é possível otimizar o provisionamento de computação pagando apenas pelos recursos necessários. Para mais informações, consulte Sobre as opções de consumo de aceleradores para cargas de trabalho de IA/ML no GKE.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ative a API Google Cloud Managed Lustre e a API Google Kubernetes Engine. Ativar APIs
- Se você quiser usar a Google Cloud CLI para essa tarefa, instale e inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
Preparar o ambiente
Defina as variáveis de ambiente padrão e receba o endereço IP da máquina de implantação:
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"Substitua os seguintes valores:
PROJECT_ID: o ID do projeto Google Cloud .REGION: a região da implantação, por exemplo,us-central1.ZONE: uma zona compatível com o Managed Lustre, por exemplo,us-central1-a.DEPLOYMENT_NAME: o nome da implantação.
Implantar o cluster e o armazenamento
Implante a infraestrutura usando o blueprint
examples/gke-managed-lustre.yamldo repositório do 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}O Cluster Toolkit provisiona a VPC, cria a instância do Managed Lustre, provisiona o cluster do GKE com o driver CSI do Managed Lustre ativado e cria o PersistentVolume e o PersistentVolumeClaim do Kubernetes.
Configure
kubectlpara acessar o novo cluster:gcloud container clusters get-credentials ${DEPLOYMENT_NAME} \ --zone=${ZONE} \ --project=${PROJECT_ID}
Executar uma carga de trabalho com o Managed Lustre
Envie uma carga de trabalho que monte o volume do Managed Lustre usando
o comando gcluster job submit. Para mais informações sobre as opções de envio de jobs, consulte o guia de envio de jobs do 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 inspecionar os registros de carga de trabalho e o status de execução, use o comando gcluster job logs:
gcluster job logs "test-lustre-$(date +%H%M)" \
--cluster=${DEPLOYMENT_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE}
O resultado será o seguinte:
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
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste documento, exclua a implantação usando o Cluster Toolkit:
gcluster destroy ${DEPLOYMENT_NAME}
A seguir
- Saiba mais sobre o driver CSI do Managed Lustre.
- Conheça o catálogo de blueprints do Cluster Toolkit.
- Saiba como criar uma classe de armazenamento do GKE.
- Saiba como criar e usar um volume com suporte do Managed Lustre.