הגדרת רשתות וגישה למכונת TPU
בדף הזה מוסבר איך להגדיר רשתות מותאמות אישית והגדרות גישה למופע TPU, כולל:
- ציון רשת ורשת משנה בהתאמה אישית
- הגדרת כתובות IP חיצוניות ופנימיות
- הפעלת גישת SSH ליחידות TPU
- צירוף חשבון שירות מותאם אישית ל-TPU
- הפעלת שיטות SSH בהתאמה אישית
- שימוש ב-VPC Service Controls
דרישות מוקדמות
לפני שמריצים את התהליכים האלה, צריך להתקין את Google Cloud CLI, ליצור פרויקט Google Cloud ולהפעיל את Compute Engine API. הוראות מפורטות מופיעות במאמר הגדרת פרויקט של Google Cloud TPU.
ציון רשת ורשת משנה בהתאמה אישית
כשיוצרים מכונה וירטואלית של TPU או תבנית של הגדרות מכונה, אפשר לציין את הרשת ואת תת-הרשת שבהן יש להשתמש עבור ה-TPU. אם לא מציינים רשת, ה-TPU יהיה ברשת default. רשת המשנה צריכה להיות באותו אזור שבו פועל ה-TPU.
יוצרים רשת ורשת משנה לפי ההוראות ליצירת רשת VPC.
יוצרים מכונת TPU וירטואלית ומציינים את הרשת המותאמת אישית ואת הרשת המשנית:
כדי לציין את הרשת ואת רשת המשנה, כוללים את דגלי הרשת שמוצגים בדוגמה הבאה כשמריצים את הפקודה
gcloud compute instances create:gcloud compute instances create TPU_NAME \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --zone=ZONE \ --maintenance-policy=TERMINATE \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --stack-type=STACK_TYPE \ --private-network-ip=INTERNAL_IPV4_ADDRESS \ --address=EXTERNAL_IPV4_ADDRESSמחליפים את ה-placeholders הבאים:
- TPU_NAME: שם למכונת ה-TPU הווירטואלית.
- MACHINE_TYPE: סוג המכונה של מכונת ה-TPU הווירטואלית (לדוגמה
ct6e-standard-8t). - IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של מכונת ה-TPU. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל
--image. מידע נוסף על תמונות של מערכות הפעלה זמין במאמר תמונות של מערכות הפעלה. - IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא
ubuntu-os-accelerator-images. - ZONE: האזור של מכונת ה-TPU (לדוגמה,
us-central1-b). - NETWORK_NAME: אופציונלי: שם הרשת. אם מציינים רשת, צריך לציין רשת משנה ששייכת לאותה רשת. אם לא מציינים רשת, Compute Engine מסיק את הרשת מרשת המשנה שצוינה.
SUBNET_NAME: השם של תת-הרשת שבה רוצים להשתמש עם המופע.
כדי לראות רשימה של רשתות משנה ברשת, משתמשים בפקודה
gcloud compute networks subnets list.STACK_TYPE: אופציונלי: סוג ערימת הרשת לממשק הרשת. הערך של
STACK_TYPEחייב להיות אחד מהערכים הבאים:IPV4_ONLY,IPV4_IPV6אוIPV6_ONLY(תצוגה מקדימה). ערך ברירת המחדל הואIPV4_ONLY.INTERNAL_IPV4_ADDRESS: אופציונלי: כתובת ה-IPv4 הפנימית שרוצים שמכונת החישוב תשתמש בה ברשת המשנה של היעד. אם לא צריך כתובת IP ספציפית, אפשר להשמיט את הדגל הזה.
כדי לציין כתובת IPv6 פנימית, משתמשים בדגל
--internal-ipv6-addressבמקום.EXTERNAL_IPV4_ADDRESS: אופציונלי: כתובת IPv4 חיצונית סטטית לשימוש עם ממשק הרשת. מחליפים את EXTERNAL_IPV4_ADDRESS באחד מהערכים הבאים:
- כתובת IPv4 תקינה מרשת המשנה שצוינה. צריך לשריין כתובת IPv4 חיצונית מראש.
-
''(מחרוזת ריקה) כדי להשתמש בכתובת IP חיצונית ארעית.
אם לא רוצים שלמכונה הווירטואלית תהיה כתובת IP חיצונית, מחליפים את הדגל
--addressבדגל--no-address.כדי לציין כתובת IPv6 חיצונית, משתמשים בדגל
--external-ipv6-addressבמקום.
הסבר על כתובות IP חיצוניות ופנימיות
כשיוצרים מכונות וירטואליות של TPU, תמיד יש להן כתובות IP פנימיות.
אם יוצרים מכונות TPU באמצעות ה-CLI של gcloud, כתובות IP חיצוניות נוצרות כברירת מחדל. אם יוצרים אותן באמצעות ממשקי ה-API ל-REST של Compute Engine (compute.googleapis.com), לא מוקצית כתובת IP חיצונית כברירת מחדל. בשני המקרים אפשר לשנות את התנהגות ברירת המחדל.
ריכזנו כאן כמה סיבות להגבלת השימוש במכונות וירטואליות של TPU כך שיוקצו להן רק כתובות IP פנימיות:
- אבטחה משופרת: אפשר לגשת לכתובות IP פנימיות רק ממקורות באותה רשת VPC, מה שיכול לשפר את האבטחה על ידי הגבלת הגישה החיצונית למכונות הווירטואליות של TPU. זה חשוב במיוחד כשעובדים עם נתונים רגישים או כשרוצים להגביל את הגישה למכונות הווירטואליות של TPU למשתמשים או למערכות ספציפיות ברשת.
- חיסכון בעלויות: שימוש בכתובות IP פנימיות מאפשר להימנע מהעלויות שקשורות לכתובות IP חיצוניות, שיכולות להיות משמעותיות במספר גדול של מכונות וירטואליות של TPU.
- שיפור ביצועי הרשת: כתובות IP פנימיות יכולות לשפר את ביצועי הרשת כי התעבורה נשארת ברשת של Google, וכך נמנעים העומסים שנוצרים מניתוב דרך האינטרנט הציבורי. זה רלוונטי במיוחד לעומסי עבודה של למידת מכונה בקנה מידה גדול, שדורשים תקשורת עם רוחב פס גבוה בין מכונות וירטואליות של TPU.
יצירת מופע של מכונה וירטואלית של TPU ללא כתובת IP חיצונית
אם רוצים ליצור מכונה וירטואלית של TPU ללא כתובת IP חיצונית, משתמשים בדגל --no-address כשמריצים את הפקודה gcloud compute instances create:
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--maintenance-policy=TERMINATE \
--network=NETWORK_NAME \
--subnet=SUBNET_NAME \
--stack-type=STACK_TYPE \
--private-network-ip=INTERNAL_IPV4_ADDRESS \
--no-address
מחליפים את ה-placeholders הבאים:
- TPU_NAME: שם למכונת ה-TPU הווירטואלית.
- MACHINE_TYPE: סוג המכונה של מכונת ה-TPU הווירטואלית (לדוגמה
ct6e-standard-8t). - IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של מכונת ה-TPU. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל
--image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה. - IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה.
בתמונות TPU, הערך הוא
ubuntu-os-accelerator-images. - ZONE: האזור של ה-TPU VM (לדוגמה,
us-central1-b). - NETWORK_NAME: אופציונלי: שם הרשת. אם מציינים רשת, צריך לציין רשת משנה ששייכת לאותה רשת. אם לא מציינים רשת, Compute Engine מסיק את הרשת מרשת המשנה שצוינה.
SUBNET_NAME: השם של תת-הרשת שבה רוצים להשתמש עם המכונה.
כדי לראות את רשימת רשתות המשנה ברשת, משתמשים בפקודה
gcloud compute networks subnets list.STACK_TYPE: אופציונלי: סוג ערימת הרשת לממשק הרשת. הערך של
STACK_TYPEצריך להיות אחד מהערכים הבאים:IPV4_ONLY,IPV4_IPV6אוIPV6_ONLY(תצוגה מקדימה). ערך ברירת המחדל הואIPV4_ONLY.INTERNAL_IPV4_ADDRESS: אופציונלי: כתובת ה-IPv4 הפנימית שרוצים שמכונת ה-Compute תשתמש בה ברשת המשנה של היעד. אם לא צריך כתובת IP ספציפית, אפשר להשמיט את הדגל הזה.
כדי לציין כתובת IPv6 פנימית, משתמשים בדגל
--internal-ipv6-addressבמקום.
יצירת מכונת TPU וירטואלית עם כתובת IP חיצונית
כשיוצרים מכונת TPU וירטואלית באמצעות ה-CLI של gcloud, המכונה מקבלת כברירת מחדל כתובת IP חיצונית ארעית.
כדי ליצור מכונת TPU וירטואלית עם כתובת IP חיצונית באמצעות API בארכיטקטורת REST, צריך לשלוח בקשת POST ל-instances.insertmethod ולכלול את השדה accessConfigs במערך networkInterfaces בגוף הבקשה. אם גוף הבקשה לא מציין את השדה accessConfigs, למכונה לא תהיה גישה חיצונית לאינטרנט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType":"zones/ZONE/machineTypes/MACHINE_TYPE",
"name":"TPU_NAME",
"disks":[
{
"initializeParams":{
"sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"boot":true
}
],
"networkInterfaces":[
{
"network":"global/networks/NETWORK_NAME",
"subnetwork":"regions/REGION/subnetworks/SUBNET_NAME",
"stackType":"STACK_TYPE",
"accessConfigs":[
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT"
}
]
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE"
}
}
מחליפים את ה-placeholders הבאים:
- PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מכונת ה-TPU הווירטואלית.
- ZONE: האזור של מכונת ה-TPU (לדוגמה,
us-central1-b). - MACHINE_TYPE: סוג המכונה של מכונת ה-TPU הווירטואלית (לדוגמה
ct6e-standard-8t). - TPU_NAME: שם למכונת ה-TPU הווירטואלית.
- IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא
ubuntu-os-accelerator-images. IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של מכונת ה-TPU. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, מחליפים את הערך
"sourceImage"כולו בשם של גרסת התמונה בפורמט הבא:projects/IMAGE_PROJECT/global/images/IMAGE_NAME.מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
NETWORK_NAME: אופציונלי: שם הרשת. אם מציינים רשת, צריך לציין רשת משנה ששייכת לאותה רשת. אם לא מציינים רשת, Compute Engine מסיק את הרשת מרשת המשנה שצוינה.
REGION: האזור של רשת המשנה.
SUBNET_NAME: השם של תת-הרשת שבה רוצים להשתמש עם המכונה.
כדי לראות את רשימת רשתות המשנה ברשת, משתמשים בפקודה
gcloud compute networks subnets list.STACK_TYPE: אופציונלי: סוג הערימה של ממשק הרשת. הערך של
STACK_TYPEצריך להיות אחד מהערכים הבאים:IPV4_ONLY,IPV4_IPV6אוIPV6_ONLY(תצוגה מקדימה). ערך ברירת המחדל הואIPV4_ONLY.
אם כבר שמרתם כתובת IP חיצונית סטטית, אתם יכולים להקצות אותה למכונה בזמן היצירה באמצעות הדגל --address עם כתובת ה-IP הסטטית, או באמצעות הדגל --network-interface כדי להגדיר את תצורת הרשת המפורטת. מידע נוסף זמין במאמר בנושא הגדרת כתובות IP חיצוניות סטטיות.
הפעלת גישת SSH למכונת TPU וירטואלית
כדי להפעיל גישת SSH למכונת TPU וירטואלית:
- צריך להיות אפשר להגיע למופע TPU דרך כתובת IP חיצונית או דרך גישה פרטית ל-Google.
- אם יוצרים את מכונת ה-TPU באמצעות ה-CLI של gcloud, המכונה מקבלת כברירת מחדל כתובת IP חיצונית ארעית. אם יוצרים את מכונת ה-TPU באמצעות API בארכיטקטורת REST, צריך לציין שלמכונה תהיה כתובת IP חיצונית. מידע נוסף זמין במאמר בנושא יצירת מכונת TPU וירטואלית עם כתובת IP חיצונית.
- אם למופעי ה-TPU שלכם אין כתובות IP חיצוניות, אתם יכולים להגדיר גישה פרטית ל-Google. מידע נוסף זמין במאמר הפעלת גישה פרטית ל-Google.
- הרשת שבה נעשה שימוש במופע TPU צריכה לאפשר תעבורת SSH. כברירת מחדל, הרשת מאפשרת תעבורת נתונים דרך SSH. אם אתם משתמשים ברשת בהתאמה אישית או משנים את הגדרות ברירת המחדל של הרשת, אתם צריכים להפעיל את ה-SSH ברשת באופן מפורש.
הפעלת גישה פרטית ל-Google
יחידות TPU שאין להן כתובות IP חיצוניות יכולות להשתמש בגישה פרטית ל-Google כדי לגשת לשירותים ול-Google APIs. מידע נוסף על הפעלת גישה פרטית ל-Google זמין במאמר הגדרת גישה פרטית ל-Google.
אחרי שמגדירים גישה פרטית ל-Google, מתחברים למכונה הווירטואלית באמצעות SSH.
הפעלת תנועת SSH ברשת
רשת ברירת המחדל מאפשרת גישת SSH לכל מכונות ה-TPU הווירטואליות. אם אתם משתמשים ברשת בהתאמה אישית או משנים את הגדרות הרשת שמוגדרות כברירת מחדל, אתם צריכים להפעיל במפורש גישת SSH על ידי הוספת כלל לחומת האש:
gcloud compute firewall-rules create \ --network=NETWORK allow-ssh \ --allow=tcp:22
צירוף חשבון שירות מותאם אישית
לכל מכונת TPU וירטואלית יש חשבון שירות משויך שמשמש אותה כדי לשלוח בקשות API בשמכם. המכונות הווירטואליות של TPU משתמשות בחשבון השירות הזה כדי לבצע קריאות ל-API של Compute Engine ולגשת ל-Cloud Storage ולשירותים אחרים. כברירת מחדל, מכונת ה-TPU הווירטואלית משתמשת בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
מידע נוסף על חשבונות שירות זמין במאמר חשבונות שירות.
כדי לציין חשבון שירות בהתאמה אישית כשיוצרים מכונת TPU וירטואלית, משתמשים בפקודה gcloud compute instances create ומזינים את כתובת האימייל בחשבון השירות ואת היקף הגישה cloud-platform למכונה הווירטואלית:
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--maintenance-policy=TERMINATE \
--service-account=SERVICE_ACCOUNT_EMAIL \
--scopes=https://www.googleapis.com/auth/cloud-platform
מחליפים את מה שכתוב בשדות הבאים:
- TPU_NAME: שם למכונת ה-TPU הווירטואלית.
- MACHINE_TYPE: סוג המכונה של מכונת ה-TPU הווירטואלית (לדוגמה
ct6e-standard-8t). - IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של מכונת ה-TPU. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל
--image. מידע נוסף על תמונות של מערכות הפעלה זמין במאמר תמונות של מערכות הפעלה. - IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא
ubuntu-os-accelerator-images. - ZONE: האזור של מכונת ה-TPU (לדוגמה,
us-central1-b). - SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות שיצרתם. לדוגמה:
my-sa-123@my-project-123.iam.gserviceaccount.com. כדי לראות את כתובת האימייל, אפשר לעיין במאמר הצגת רשימה של חשבונות שירות.
כדי להשתמש בחשבון שירות בפרויקט אחר מזה שבו יצרתם את מכונת ה-TPU הווירטואלית, פועלים לפי ההוראות במאמר שימוש בחשבון שירות בפרויקט אחר.
שילוב עם VPC Service Controls
בעזרת VPC Service Controls תוכלו להגדיר מתחמי אבטחה היקפית מסביב למשאבי TPU ולשלוט בתנועת הנתונים מעבר לגבולות המתחם. מידע נוסף זמין במאמר סקירה כללית על VPC Service Controls. מידע על המגבלות בשימוש ב-TPU עם VPC Service Controls זמין במאמר מוצרים נתמכים ומגבלות.