שימוש בחשבון שירות חוצה פרויקטים

במאמר הזה מוסבר איך להשתמש בחשבון שירות חוצה פרויקטים כשיוצרים מכונת TPU וירטואלית. חשבון שירות חוצה פרויקטים הוא חשבון שירות שנמצא בפרויקט אחר מזה של מכונת ה-TPU הווירטואלית.

ההוראות האלה לא כוללות שיקולים לגבי VPC משותף או VPC Service Controls. יכול להיות שיידרשו הגדרות או הרשאות נוספות כדי לתמוך בשימוש בהן. מידע נוסף זמין במאמרים בנושא יצירה ושינוי של רשתות VPC משותפות וסקירה כללית על VPC Service Controls.

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

הגדרת הרשאות IAM

  1. מקצים לחשבון המשתמש את התפקיד משתמש בחשבון שירות כדי לאפשר לו לצרף את חשבון השירות למכונה הווירטואלית.

    gcloud iam service-accounts add-iam-policy-binding \
      SERVICE_ACCOUNT_EMAIL \
      --project=SERVICE_PROJECT_ID \
      --member=user:USER_EMAIL \
      --role=roles/iam.serviceAccountUser
    

    מחליפים את ה-placeholders הבאים:

    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות.
    • SERVICE_PROJECT_ID: מזהה הפרויקט שמכיל את חשבון השירות.
    • USER_EMAIL: כתובת האימייל של חשבון המשתמש.
  2. אם עומס העבודה שלכם פועל בקונטיינרים של Docker, צריך להעניק לסוכן השירות של Compute Engine גישה לשרת המטא-נתונים.

    gcloud iam service-accounts add-iam-policy-binding \
      SERVICE_ACCOUNT_EMAIL \
      --project=SERVICE_PROJECT_ID \
      --role=roles/iam.serviceAccountTokenCreator \
      --member=serviceAccount:service-TPU_PROJECT_ID@compute-system.iam.gserviceaccount.com
    

    מחליפים את ה-placeholders הבאים:

    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות.
    • SERVICE_PROJECT_ID: מזהה הפרויקט שמכיל את חשבון השירות.
    • TPU_PROJECT_ID: מזהה הפרויקט שמכיל את מכונת ה-TPU הווירטואלית.

יצירת TPU VM בפרויקט TPU

יוצרים מכונת TPU וירטואלית בפרויקט ה-TPU באמצעות חשבון השירות בפרויקט השירות.

  gcloud compute instances create TPU_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --service-account=SERVICE_ACCOUNT_EMAIL \
    --project=TPU_PROJECT_ID \
    --zone=ZONE \
    --maintenance-policy=TERMINATE

מחליפים את ה-placeholders הבאים:

  • TPU_NAME: השם של מכונת ה-TPU.
  • MACHINE_TYPE: סוג המכונה.
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. כדי להתקין גרסה ספציפית של מערכת הפעלה, משתמשים בדגל --image.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.
  • SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות.
  • TPU_PROJECT_ID: מזהה הפרויקט שמכיל את מכונת ה-TPU הווירטואלית.
  • ZONE: האזור של ה-TPU VM.