Crea un clúster de GKE con Pathways

Puedes usar el kit de procesamiento acelerado (XPK) para crear clústeres de Google Kubernetes Engine (GKE) preconfigurados para cargas de trabajo basadas en rutas de aprendizaje. También puedes usar gcloud para crear manualmente clústeres de GKE para cargas de trabajo basadas en rutas.

Antes de comenzar

Asegúrate de tener lo siguiente:

Cómo configurar tu entorno local

Accede con tus Google Cloud credenciales.

gcloud auth application-default login

Define las siguientes variables de entorno con valores adecuados para tu carga de trabajo.

Variables obligatorias

Crea un clúster de GKE

En el siguiente ejemplo, crearás un clúster con dos grupos de nodos v5e 2x4. Puedes crear un clúster con XPK o el comando gcloud.

XPK

  1. Configura algunas variables de entorno

    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

    Reemplaza lo siguiente:

    • CLUSTER_NODEPOOL_COUNT: Es la cantidad máxima de grupos de nodos que puede usar una carga de trabajo.
    • PROJECT_ID: El nombre de tu proyecto de Google Cloud
    • ZONE: Es la zona en la que crearás recursos.
    • CLUSTER: Es el nombre del clúster de GKE.
    • TPU_TYPE: Es el tipo de TPU. Para obtener más información, consulta los tipos compatibles en XPK.
    • PW_CPU_MACHINE_TYPE: Es el tipo de nodo de CPU para el controlador de Pathways.
    • NETWORK: [Opcional] Establece un nombre de nube privada virtual si usas XPK. Este debe crearse antes de crear el clúster.
    • SUBNETWORK: [Opcional] Establece un nombre de subred si usas XPK. Este debe crearse antes de crear el clúster.
  2. Usa XPK para crear un clúster de GKE Pathways. Este comando puede tardar varios minutos en aprovisionar la capacidad. Una vez que se complete, se asignará tu capacidad y comenzarás a incurrir en cargos.

    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"

Una vez que se cree el clúster, podrás crear y borrar cargas de trabajo según sea necesario. No es necesario que vuelvas a aprovisionar la capacidad de TPU.

gcloud

  1. Configura algunas variables de entorno

    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

    Reemplaza lo siguiente:

    • CLUSTER: Es el nombre del clúster de GKE.
    • PROJECT_ID: El nombre de tu proyecto de Google Cloud
    • ZONE: Es la zona en la que crearás recursos.
    • REGION: Es la región en la que crearás recursos.
    • CLUSTER_VERSION: [Opcional] La versión del clúster de GKE. Usa 1.32.2-gke.1475000 o una versión posterior.
    • PW_CPU_MACHINE_TYPE: Es el tipo de nodo de CPU para el controlador de Pathways.
    • NETWORK: [Opcional] Establece un nombre de nube privada virtual si usas XPK. Este debe crearse antes de crear el clúster.
    • SUBNETWORK: [Opcional] Establece un nombre de subred si usas XPK. Este debe crearse antes de crear el clúster.
    • CLUSTER_NODEPOOL_COUNT: Es la cantidad máxima de grupos de nodos que puede usar una carga de trabajo.
    • TPU_MACHINE_TYPE: El tipo de máquina de TPU que deseas usar
    • WORKERS_PER_SLICE: Es la cantidad de nodos por grupo de nodos.

    • GKE_ACCELERATOR_TYPE: Es el tipo de acelerador de Google Kubernetes Engine. Consulta Cómo elegir una versión de TPU.

    • TOPOLOGY: Es la topología de la TPU.

    • NUM_CPU_NODES: Tamaño del grupo de nodos de CPU de Pathways

En los siguientes pasos, se explica cómo crear un clúster de GKE y configurarlo para ejecutar cargas de trabajo de Pathways.

  1. Crea un clúster de 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. Crea grupos de nodo 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. Crea un grupo de nodos 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. Instala las APIs de JobSet y PathwaysJob

    Obtén las credenciales del clúster y agrégalas a tu contexto local de kubectl.

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

    Para usar la arquitectura de Pathways en tu clúster de GKE, debes instalar las APIs de JobSet y 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
    

¿Qué sigue?