Criar um cluster do GKE com os programas de aprendizado

Use o Kit de processamento acelerado (XPK) para criar clusters pré-configurados do Google Kubernetes Engine (GKE) para cargas de trabalho baseadas em programas de aprendizado. Também é possível usar gcloud para criar manualmente clusters do GKE para cargas de trabalho baseadas em programas.

Antes de começar

Você precisa ter:

Configurar seu ambiente local

Faça login com suas credenciais do Google Cloud .

gcloud auth application-default login

Defina as seguintes variáveis de ambiente com valores adequados à sua carga de trabalho.

Variáveis obrigatórias

Criar um cluster do GKE

No exemplo a seguir, você cria um cluster com dois pools de nós v5e 2x4. É possível criar um cluster usando o XPK ou o comando gcloud.

XPK

  1. Definir algumas variáveis de ambiente

    CLUSTER_NODEPOOL_COUNT=CLUSTER_NODEPOOL_COUNT
    PROJECT=PROJECT_ID
    ZONE=ZONE
    CLUSTER=GKE_CLUSTER_NAME
    TPU_TYPE="v5litepod-8"
    PW_CPU_MACHINE_TYPE="n2-standard-64"
    NETWORK=NETWORK
    SUBNETWORK=SUB_NETWORK

    Substitua:

    • CLUSTER_NODEPOOL_COUNT: o número máximo de pools de nós que uma carga de trabalho pode usar.
    • PROJECT_ID: o nome do projeto Google Cloud
    • ZONE: a zona em que você está criando recursos
    • CLUSTER: o nome do cluster do GKE
    • TPU_TYPE: o tipo de TPU. Para mais informações, consulte tipos compatíveis em XPK.
    • PW_CPU_MACHINE_TYPE: o tipo de nó da CPU para o controlador do Pathways.
    • NETWORK: [Opcional] defina um nome de nuvem privada virtual se estiver usando o XPK. Ele precisa ser criado antes da criação do cluster.
    • SUBNETWORK: [Opcional] defina um nome de sub-rede se estiver usando o XPK. Ele precisa ser criado antes da criação do cluster.
  2. Use o XPK para criar um cluster do GKE Pathways. Esse comando pode levar vários minutos para provisionar a capacidade. Depois de concluído, sua capacidade será alocada e você começará a receber cobranças.

    xpk cluster create-pathways \
    --num-slices=${CLUSTER_NODEPOOL_COUNT} \
    --tpu-type=${TPU_TYPE} \
    --pathways-gce-machine-type=${PW_CPU_MACHINE_TYPE} \
    --on-demand \
    --project=${PROJECT} \
    --zone=${ZONE} \
    --cluster=${CLUSTER} \
    --custom-cluster-arguments="--network=${NETWORK} --subnetwork=${SUBNETWORK} --enable-ip-alias"

Depois que o cluster for criado, você poderá criar e excluir cargas de trabalho conforme necessário. Não é necessário provisionar novamente a capacidade da TPU.

gcloud

  1. Definir algumas variáveis de ambiente

    CLUSTER=GKE_CLUSTER_NAME
    PROJECT=PROJECT_ID
    ZONE=ZONE
    REGION=REGION
    CLUSTER_VERSION=GKE_CLUSTER_VERSION
    PW_CPU_MACHINE_TYPE="n2-standard-64"
    NETWORK=NETWORK
    SUBNETWORK=SUB_NETWORK
    CLUSTER_NODEPOOL_COUNT=3
    TPU_MACHINE_TYPE="ct5lp-hightpu-4t"
    WORKERS_PER_SLICE=2
    TOPOLOGY="2x4"
    NUM_CPU_NODES=1

    Substitua:

    • CLUSTER: o nome do cluster do GKE
    • PROJECT_ID: o nome do projeto Google Cloud
    • ZONE: a zona em que você está criando recursos
    • REGION: a região em que você está criando recursos
    • CLUSTER_VERSION: [Opcional] a versão do cluster do GKE. Use 1.32.2-gke.1475000 ou mais recente.
    • PW_CPU_MACHINE_TYPE: o tipo de nó da CPU para o controlador do Pathways.
    • NETWORK: [Opcional] defina um nome de nuvem privada virtual se estiver usando o XPK. Ele precisa ser criado antes da criação do cluster.
    • SUBNETWORK: [Opcional] defina um nome de sub-rede se estiver usando o XPK. Ele precisa ser criado antes da criação do cluster.
    • CLUSTER_NODEPOOL_COUNT: o número máximo de pools de nós que uma carga de trabalho pode usar.
    • TPU_MACHINE_TYPE: o tipo de máquina da TPU que você quer usar
    • WORKERS_PER_SLICE: o número de nós por pool de nós

    • GKE_ACCELERATOR_TYPE: o tipo de acelerador do Google Kubernetes Engine. Consulte Escolher uma versão da TPU.

    • TOPOLOGY: a topologia da TPU

    • NUM_CPU_NODES: o tamanho do pool de nós de CPU do programa de aprendizado

As etapas a seguir explicam como criar um cluster do GKE e configurá-lo para executar cargas de trabalho do Pathways.

  1. Crie um cluster do GKE:

    gcloud beta container clusters create ${CLUSTER} \
    --project=${PROJECT} \
    --zone=${ZONE} \
    --cluster-version=${CLUSTER_VERSION} \
    --scopes=storage-full,gke-default,cloud-platform \
    --machine-type ${PW_CPU_MACHINE_TYPE} \
    --network=${NETWORK} \
    --subnetwork=${SUBNETWORK}
    
  2. Crie pools de nós da TPU:

    for i in $(seq 1 ${CLUSTER_NODEPOOL_COUNT}); do
    gcloud container node-pools create "tpu-np-${i}" \
    --project=${PROJECT} \
    --zone=${ZONE} \
    --cluster=${CLUSTER} \
    --machine-type=${TPU_MACHINE_TYPE} \
    --num-nodes=${WORKERS_PER_SLICE} \
    --placement-type=COMPACT \
    --tpu-topology=${TOPOLOGY} \
    --scopes=storage-full,gke-default,cloud-platform \
    --workload-metadata=GCE_METADATA
    done
    
  3. Crie um pool de nós de CPU:

    gcloud container node-pools create "cpu-pathways-np" \
    --project ${PROJECT} \
    --zone ${ZONE} \
    --cluster ${CLUSTER} \
    --machine-type ${PW_CPU_MACHINE_TYPE} \
    --num-nodes ${NUM_CPU_NODES} \
    --scopes=storage-full,gke-default,cloud-platform \
    --workload-metadata=GCE_METADATA
    
  4. Instalar as APIs JobSet e PathwaysJob

    Receba as credenciais do cluster e adicione-as ao contexto kubectl local.

    gcloud container clusters get-credentials ${CLUSTER} \
        [--zone=${ZONE} | --region=${REGION}] \
        --project=${PROJECT} \
        && kubectl config set-context --current --namespace=default
    

    Para usar a arquitetura do Pathways no cluster do GKE, instale as APIs JobSet e PathwaysJob.

    kubectl apply --server-side -f https://github.com/kubernetes-sigs/jobset/releases/download/v0.8.0/manifests.yaml
    kubectl apply --server-side -f https://github.com/google/pathways-job/releases/download/v0.1.2/install.yaml
    

A seguir