יצירת אשכול GKE באמצעות Pathways

אתם יכולים להשתמש ב-Cluster Toolkit כדי ליצור אשכולות Google Kubernetes Engine ‏ (GKE) שהוגדרו מראש לעומסי עבודה מבוססי-Pathways. אפשר גם להשתמש ב-gcloud כדי ליצור ידנית אשכולות GKE לעומסי עבודה שמבוססים על Pathways.

לפני שמתחילים

ודאו שיש לכם:

הגדרת הסביבה המקומית

נכנסים באמצעות Google Cloud פרטי הכניסה.

gcloud auth application-default login

מגדירים את משתני הסביבה הבאים עם ערכים שמתאימים לעומס העבודה.

יצירת אשכול GKE

בדוגמה הבאה, יוצרים אשכול עם מאגרי צמתים של TPU v6e 2x4. אפשר ליצור אשכול באמצעות Cluster Toolkit או ה-CLI של gcloud.

Cluster Toolkit

  1. הגדרת Cluster Toolkit
  2. כדי לפרוס אשכול GKE TPU, פועלים לפי ההוראות במאמר פריסת אשכול GKE TPU v6e (סקירה כללית של כל אפשרויות הפריסה של TPU זמינה במאמר סקירה כללית של פריסות Cloud TPU).

    כשמגדירים את תוכנית הפריסה, מבצעים את הפעולות הבאות:

    • מוודאים שההגדרה enable_pathways_for_tpus מוגדרת ל-true (מופעלת כברירת מחדל בתוכניות של Cluster Toolkit TPU). התהליך הזה מקצה באופן אוטומטי את מאגר צמתי ה-CPU הנדרש של cpu-np (n4-standard-64) ואת ההגדרות של Kueue בשביל בקר Pathways.
    • מגדירים את num_slices למספר מאגרי הצמתים של פרוסות TPU שנדרשים לעומס העבודה.
    • מגדירים את tpu_topology לטופולוגיה של פרוסת ה-TPU שבחרתם (לדוגמה, 2x4 או 4x4).
    • אם אתם משתמשים בקיבולת שמורה, צריך להגדיר את reservation לשם ההזמנה של TPU.

    אחרי שיוצרים את האשכול, אפשר לשלוח עומסי עבודה של Pathways באמצעות הפקודה gcluster job submit עם הדגל --pathways.

gcloud

  1. הגדרת משתני סביבה

    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="ct6e-standard-4t"
    WORKERS_PER_SLICE=2
    TOPOLOGY="2x4"
    NUM_CPU_NODES=1

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER: שם אשכול GKE
    • ‫PROJECT_ID: שם הפרויקט ב- Google Cloud
    • ‫ZONE: האזור שבו יוצרים את המשאבים
    • ‫REGION: האזור שבו יוצרים את המשאבים
    • ‫CLUSTER_VERSION: [אופציונלי] גרסת אשכול GKE. אפשר להשתמש בגרסה ‎1.32.2-gke.1475000 ומעלה
    • ‫NETWORK: [אופציונלי] הגדרת שם של ענן וירטואלי פרטי (VPC). צריך ליצור אותו לפני שיוצרים את האשכול.
    • ‫SUBNETWORK: [אופציונלי] הגדרת שם של רשת משנה. צריך ליצור את הרשת המשנה לפני שיוצרים את האשכול.

בשלבים הבאים מוסבר איך ליצור אשכול GKE ולהגדיר אותו להרצת עומסי עבודה של Pathways.

  1. יוצרים אשכול 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. יוצרים מאגרי צמתים של 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. יוצרים מאגר צמתים של 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. התקנת ה-API של JobSet

    מקבלים את פרטי הכניסה לאשכול ומוסיפים אותם להקשר המקומי של kubectl.

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

    כדי להשתמש בארכיטקטורת Pathways באשכול GKE, צריך להתקין את JobSetAPI.

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

המאמרים הבאים