במאמר הזה מוסבר איך ליצור מקומות שמורים משותפים, שהם מקומות שמורים שמשותפים לכמה פרויקטים, ואיך לנהל את הפרויקטים בארגון שיכולים לצרוך את המקומות השמורים המשותפים.
אפשר להשתמש במקום שמור משותף בפרויקט שמארח את המקום השמור (פרויקט הבעלים) ובפרויקטים שהמקום השמור שותף איתם (פרויקטים צרכניים). אם בארגון שלכם יש כמה פרויקטים שצריכים מכונות וירטואליות (VM) עם אותם מאפיינים, כדאי להשתמש בהזמנות משותפות. שימוש בהזמנות משותפות מאפשר לכם לנצל טוב יותר את ההזמנות ולצמצם את מספר ההזמנות שאתם צריכים ליצור ולנהל. מידע נוסף על הזמנות זמין במאמר בנושא איך מבקשים מקום שמור למשאבים של תחום מוגדר ב-Compute Engine.
לשיטות אחרות ליצירת הזמנות, אפשר לעיין בדפים הבאים:
כדי ליצור בקשה לשמירת מקום שאפשר להשתמש בה רק בפרויקט אחד, קראו את המאמר איך יוצרים בקשה לשמירת מקום לפרויקט אחד.
כדי ליצור הזמנה כשרוכשים התחייבות לשימוש במשאבים, קראו את המאמר רכישת התחייבויות לחומרה עם הזמנות מצורפות. התחייבויות לשימוש מספקות הנחות, שנקראות הנחות תמורת התחייבות לשימוש (CUD), על עלויות המשאבים על פי דרישה, בתמורה לרכישת כמות מינימלית של משאבים או להוצאת סכום מינימלי.
לפני שמתחילים
- כדאי לעיין בשיטות המומלצות לשימוש בהזמנות משותפות.
- כדאי לעיין ב דרישות המכסה ו בהגבלות על הזמנות משותפות.
- מוודאים שהפרויקט שבו אתם משתמשים כדי ליצור הזמנות משותפות נוסף לרשימת ההיתרים של אילוץ המדיניות פרויקטים של בעלי הזמנות משותפות (
compute.sharedReservationsOwnerProjects) של מדיניות הארגון על ידי אדמין של מדיניות הארגון. כברירת מחדל, רשימת ההיתרים הזו ריקה, כך שאי אפשר ליצור הזמנות משותפות עד שהארגון ייתן את ההרשאה הזו לפרויקט אחד או יותר. פרטים נוספים על צפייה באילוץ של מדיניות הארגון ועריכתו זמינים במאמר בנושא ניהול יצירת הזמנות משותפות. -
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צרו פרטי כניסה לאימות מקומי בחשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צרו פרטי כניסה לאימות מקומי בחשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
המשך
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Go שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Java שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי להשתמש בדוגמאות של Node.js שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת הזמנות משותפות, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- אדמין Compute (
roles/compute.admin) בפרויקט -
כדי להציג ולערוך את כללי המדיניות של הארגון: אדמין ארגוני (
roles/orgpolicy.policyAdmin) בארגון
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות ליצירת הזמנות משותפות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור הזמנות משותפות, נדרשות ההרשאות הבאות:
-
compute.reservations.createבפרויקט -
כדי לראות את כללי מדיניות הארגון:
orgpolicy.policy.getבארגון -
כדי לערוך את מדיניות הארגון:
orgpolicy.policy.setבארגון -
כדי לציין תבנית של הגדרות מכונה:
compute.instanceTemplates.useReadOnlyבתבנית של הגדרות המכונה
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יצירת הזמנה משותפת
בקטע הזה מוסבר איך ליצור הזמנות משותפות. אחרי שיוצרים הזמנה משותפת, רק פרויקט הבעלים יכול לשנות אותה, אבל פרויקט הבעלים או כל פרויקט צרכן יכולים להשתמש במשאבים של ההזמנה המשותפת.
כדי להשתמש בהזמנה, למכונה וירטואלית צריכים להיות מאפיינים שתואמים בדיוק להזמנה הזו. כדי לציין את המאפיינים של המכונות הווירטואליות שרוצים לשריין, בוחרים באחד מהקטעים הבאים במסמך הזה:
מומלץ: מציינים תבנית של הגדרות מכונה
כאן מוסבר איך משתמשים בתבנית של הגדרות מכונה כדי להגדיר את המאפיינים של הזמנה משותפת. באמצעות תבנית של הגדרות מכונה, אתם יכולים להגדיר את המאפיינים של שריון ושל המכונות הווירטואליות שיכולות להשתמש בשריון באותו מקום. עם זאת, מכיוון שתבניות הן ספציפיות לפרויקט, אי אפשר להשתמש באותה תבנית כדי ליצור מכונות וירטואליות שיכולות להשתמש בשריון מחוץ לפרויקט שבו נוצר השריון. בפרויקטים שבהם השמורה משותפת, צריך ליצור תבניות דומות או ליצור מכונות וירטואליות על ידי ציון מאפיינים ישירות.
-
בקטע הזה מוסבר איך להשתמש במכונה וירטואלית קיימת כדי להגדיר את המאפיינים של הזמנה. על ידי שימוש במאפיינים של מכונה וירטואלית קיימת, אתם יכולים לצרוך את המקום השמור על ידי יצירת מכונות וירטואליות עם מאפיינים שתואמים למכונה הווירטואלית שמשמשת כהפניה.
-
בקטע הזה מוסבר איך להגדיר ישירות את המאפיינים של הזמנה משותפת. בשיטה הזו, אתם צריכים לוודא באופן ידני שהמאפיינים של המכונות הווירטואליות וההזמנות תואמים בדיוק – כל חוסר התאמה במאפיינים מונע את השימוש.
כברירת מחדל, כל מכונה וירטואלית עם מאפיינים שתואמים להזמנה יכולה להשתמש בה באופן אוטומטי. כדי לשלוט בשימוש בהזמנות, אתם יכולים לבצע אחת או יותר מהפעולות הבאות:
ליצור הזמנה שאפשר להשתמש בה רק במכונות וירטואליות שמכוונות אליה באופן ספציפי, כמו שמוסבר בקטעים הבאים במסמך הזה. לאחר מכן, מגדירים את המכונות הווירטואליות כך שישתמשו בהזמנה הספציפית הזו.
ציון תבנית של הגדרות מכונה
לפני שיוצרים הזמנה באמצעות ציון תבנית של הגדרות מכונה, חשוב לוודא את הדברים הבאים:
תבנית של הגדרות מכונה מכילה הגדרות ספציפיות לפרויקט, כך שאפשר לגשת לתבנית של הגדרות מכונה ולהשתמש בה רק באותו פרויקט. אם יוצרים מקום שמור משותף על ידי ציון תבנית של הגדרות מכונה, אי אפשר להשתמש באותה תבנית כדי ליצור מכונות וירטואליות שיכולות לצרוך את המקום השמור מחוץ לפרויקט שבו נוצר המקום השמור.
יוצרים את המקום השמור באותו אזור ואותו תחום (zone) כמו המשאבים בתבנית של הגדרות מכונה. אם בתבנית של הגדרות מכונה מצוינים משאבים אזוריים או משאבים של תחום מוגדר, כמו סוג מכונה או נפח של דיסק אחסון מתמיד, השימוש בתבנית מוגבל למיקומים שבהם המשאבים האלה קיימים. לדוגמה, אם בתבנית של הגדרות המכונה ציינתם נפח קיים של Persistent Disk באזור
us-central1-a, תוכלו ליצור את ההזמנה רק באותו אזור. כדי לבדוק אם תבנית קיימת מציינת משאבים שמקשרים את התבנית לאזור או לתחום מוגדר ספציפיים, צופים בפרטים של תבנית של הגדרות מכונה ומחפשים בתוכה הפניות למשאבים אזוריים או למשאבים של תחום מוגדר.
כדי ליצור מקום שמור משותף על ידי ציון תבנית של הגדרות מכונה, בוחרים באחת מהאפשרויות הבאות:
המסוף
פותחים את הדף Reservations במסוף Google Cloud .
לוחצים על Create reservation (יצירת בקשה לשמירת מקום). ייפתח הדף Create a reservation.
בשדה Name, נותנים שם לבקשה.
ברשימות Region ו-Zone, בוחרים את האזור והתחום שבהם רוצים לשריין את המשאבים.
בקטע Share type (סוג השיתוף):
כדי לשתף את ההזמנה עם פרויקטים אחרים, בוחרים באפשרות Shared.
לוחצים על Add projects (הוספת פרויקטים) ובוחרים את הפרויקטים מהארגון של הפרויקט הנוכחי שרוצים לשתף איתם את השריין. אפשר לבחור עד 100 פרויקטים לצרכנים.
אופציונלי: כדי לאפשר למשימות אימון בהתאמה אישית או למשימות חיזוי ב-Vertex AI להשתמש בשמירת מקום למכונות וירטואליות של GPU, בקטע Google Cloud services בוחרים באפשרות Share reservation.
בקטע Use with VM instance, בוחרים באחת מהאפשרויות הבאות:
כדי להשתמש אוטומטית במכונות וירטואליות שמתאימות לפרטי הבקשה, מסמנים את האפשרות Use reservation automatically.
כדי להשתמש במשאבים שמתאימים לפרטי הבקשה רק כשיוצרים מכונות וירטואליות שמיועדות ספציפית אליה (לפי שם), בוחרים באפשרות Select specific reservation.
בקטע Resource details (פרטי המשאב), מבצעים את הפעולות הבאות:
בשדה Number of VM instances, כותבים כמה מכונות וירטואליות רוצים לשריין.
כדי לציין את ההגדרות של המכונה הווירטואלית באמצעות תבנית של הגדרות מכונה, בוחרים באפשרות Use instance template ואז בוחרים את התבנית של הגדרות המכונה ברשימה שמופיעה.
בקטע Auto-delete, אפשר להפעיל את אפשרות המחיקה האוטומטית כדי ש-Compute Engine ימחק אוטומטית את הבקשה לשמירת מקום בתאריך ובשעה ספציפיים. מתי זה שימושי? למשל כשמתכננים להפסיק את השימוש במשאבים ששוריינו ורוצים למנוע חיובים לא נחוצים.
לוחצים על Create כדי ליצור את הבקשה לשמירת מקום. ייפתח הדף Reservations. יכולות לעבור עד דקה עד שהבקשה תיווצר. כדי לראות מתי הבקשה תיווצר ב-Compute Engine, אתם יכולים לפתוח את רשימת הבקשות לשמירת מקום.
gcloud
כדי ליצור הקצאת מקום משותפת, משתמשים בפקודה gcloud compute reservations create עם הדגלים --share-setting=projects ו---share-with.
כדי ליצור הזמנה משותפת על ידי ציון תבנית של הגדרות מכונה, בלי לכלול דגלים אופציונליים, מריצים את הפקודה הבאה:
gcloud compute reservations create RESERVATION_NAME \
--share-setting=projects \
--share-with=CONSUMER_PROJECT_IDS \
--source-instance-template=INSTANCE_TEMPLATE_URL \
--vm-count=NUMBER_OF_VMS \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
RESERVATION_NAME: השם של ההזמנה שרוצים ליצור.
PROJECT_ID: מזהה הפרויקט שבו רוצים לשריין משאבים ושבו קיימת תבנית של הגדרות מכונה.
CONSUMER_PROJECT_IDS: רשימה מופרדת בפסיקים של מזהי הפרויקטים שיכולים להשתמש בהזמנה הזו – לדוגמה,project-1,project-2. אפשר לכלול עד 100 פרויקטים לצרכנים. הפרויקטים האלה צריכים להיות באותו ארגון כמו הפרויקט של הבעלים. לא כוללים את פרויקט הבעלים. כברירת מחדל, כבר יש הרשאה להשתמש בהזמנה.
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה קיימת, שחייבת להיות קיימת בפרויקט. מציינים אחד מהערכים הבאים:לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAMEלתבנית גלובלית של הגדרות מכונה:
INSTANCE_TEMPLATE_NAME
NUMBER_OF_VMS: מספר המכונות הווירטואליות שרוצים לשריין.
ZONE: האזור שבו רוצים לשריין משאבים.
לדוגמה, כדי ליצור מקום שמור על ידי ציון תבנית של הגדרות מכונה גלובלית בתחום (zone) us-central1-a, לשתף את המקום השמור עם הפרויקטים project-1 ו-project-2, ולהזמין עשר מכונות וירטואליות שכל אחת מהן משתמשת במכונה עם קונפיגורציה מוגדרת (predefined) מסוג N2 עם 4 vCPU, מריצים את הפקודה הבאה:
gcloud compute reservations create my-reservation \
--share-setting=projects \
--share-with=project-1,project-2 \
--source-instance-template=projects/example-project/global/example-instance-template \
--vm-count=10 \
--zone=us-central1-a
אפשר גם לבצע אחת או יותר מהפעולות הבאות:
כדי לציין שרק מכונות וירטואליות שמיועדות ספציפית לבקשה הזו יכולות להשתמש בה, מוסיפים את הדגל
--require-specific-reservation.gcloud compute reservations create RESERVATION_NAME \ --require-specific-reservation \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=INSTANCE_TEMPLATE_URL \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEכדי לאפשר למשימות אימון בהתאמה אישית או למשימות חיזוי ב-Vertex AI להשתמש בשמירת מקום למכונות וירטואליות של GPU, צריך לכלול את הדגל
--reservation-sharing-policyעם הערךALLOW_ALL.gcloud compute reservations create RESERVATION_NAME \ --reservation-sharing-policy=ALLOW_ALL \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=INSTANCE_TEMPLATE_URL \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEכדי לאפשר ל-Compute Engine למחוק אוטומטית את הבקשה לשמירת מקום, בוחרים אחת מהשיטות הבאות:
כדי למחוק את הבקשה לשמירת מקום בתאריך ובשעה ספציפיים, משתמשים בפקודה
gcloud beta compute reservations createעם הדגל--delete-at-time.gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=INSTANCE_TEMPLATE_URL \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEמחליפים את
DELETE_AT_TIMEבתאריך ובשעה בפורמט של חותמת זמן RFC 3339, שצריכה להיות ככה:YYYY-MM-DDTHH:MM:SSOFFSETמחליפים את מה שכתוב בשדות הבאים:
YYYY-MM-DD: תאריך בפורמט של שנה בת 4 ספרות, חודש בן 2 ספרות ויום בחודש בן 2 ספרות, מופרדים במקפים (-).
HH:MM:SS: שעה בפורמט של שעה בת 2 ספרות בשיטת 24 שעות, דקות בנות 2 ספרות ושניות בנות 2 ספרות, מופרדות באמצעות נקודתיים (:).
OFFSET: אזור הזמן בפורמט של היסט מהזמן האוניברסלי המתואם (UTC). לדוגמה, כדי להשתמש בשעון החוף המערבי (PST), מציינים-08:00. לחלופין, כדי לא להשתמש בהזחה, מצייניםZ.
כדי למחוק את ההזמנה אחרי משך זמן מסוים, משתמשים בפקודה
gcloud beta compute reservations createעם הדגל--delete-after-duration.gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=INSTANCE_TEMPLATE_URL \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEמחליפים את
DELETE_AFTER_DURATIONבמשך זמן בימים, בשעות, בדקות או בשניות. לדוגמה, מציינים30mל-30 דקות, או1d2h3m4sליום אחד, שעתיים, 3 דקות ו-4 שניות.
המשך
Java
Node.js
Python
REST
כדי ליצור הזמנה משותפת, שולחים בקשת POST ל-method reservations.insert.
בגוף הבקשה, כוללים את הפרטים הבאים:
השדה
projectMap.השדה
shareTypeמוגדר ל-SPECIFIC_PROJECTS.
לדוגמה, כדי ליצור הזמנה משותפת על ידי ציון תבנית של הגדרות מכונה בלי לכלול שדה אפשרויות, ולשתף את ההזמנה עם שני פרויקטים של צרכנים, שולחים את בקשת ה-POST הבאה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations
{
"name": "RESERVATION_NAME",
"shareSettings": {
"shareType": "SPECIFIC_PROJECTS",
"projectMap": {
"CONSUMER_PROJECT_ID_1": {
"projectId": "CONSUMER_PROJECT_ID_1"
},
"CONSUMER_PROJECT_ID_2": {
"projectId": "CONSUMER_PROJECT_ID_2"
}
}
},
"specificReservation": {
"count": "NUMBER_OF_VMS",
"sourceInstanceTemplate": "INSTANCE_TEMPLATE_URL"
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו רוצים לשריין משאבים ושבו קיימת תבנית של הגדרות מכונה.
ZONE: האזור שבו רוצים לשריין משאבים.
RESERVATION_NAME: השם של ההזמנה שרוצים ליצור.
CONSUMER_PROJECT_ID_1ו-CONSUMER_PROJECT_ID_2: מזהי הפרויקטים שיכולים להשתמש בהזמנה הזו. אפשר לכלול עד 100 פרויקטים לצרכן. הפרויקטים האלה צריכים להיות באותו ארגון כמו הפרויקט של הבעלים. לא כוללים את פרויקט הבעלים. כברירת מחדל, כבר מותר להשתמש במשאבים שהוקצו מראש.
NUMBER_OF_VMS: מספר המכונות הווירטואליות שרוצים לשמור.
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה קיימת, שחייבת להיות קיימת בפרויקט. מציינים אחד מהערכים הבאים:לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAMEלתבנית גלובלית של הגדרות מכונה:
INSTANCE_TEMPLATE_NAME
לדוגמה, כדי ליצור מקום שמור ל-10 מכונות וירטואליות באזור us-central1-a באמצעות ציון תבנית גלובלית של הגדרות מכונה, ולשתף את המקום השמור עם הפרויקטים project-1 ו-project-2, שולחים את בקשת ה-POST הבאה:
POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
{
"name": "my-reservation",
"shareSettings": {
"shareType": "SPECIFIC_PROJECTS",
"projectMap": {
"project-1": {
"projectId": "project-1"
},
"project-2": {
"projectId": "project-2"
}
}
},
"specificReservation": {
"count": "10",
"sourceInstanceTemplate": "example-instance-template"
}
}
אפשר גם לבצע אחת או יותר מהפעולות הבאות:
כדי לציין שרק מכונות וירטואליות שמיועדות ספציפית לשריין הזה יכולות להשתמש בו, צריך לכלול את השדה
specificReservationRequiredבגוף הבקשה ולהגדיר את השדה ל-true.לדוגמה, כדי ליצור הזמנה ספציפית על ידי ציון תבנית של מכונה, ולשתף את ההזמנה עם שני פרויקטים של צרכנים, שולחים בקשה באופן הבא:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "INSTANCE_TEMPLATE_URL" }, "specificReservationRequired": true }כדי לאפשר למשימות אימון בהתאמה אישית או למשימות חיזוי ב-Vertex AI להשתמש במכונות וירטואליות של GPU שהוקצו, צריך לכלול את השדה
serviceShareTypeולהגדיר אותו לערךALLOW_ALL.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "INSTANCE_TEMPLATE_URL" } }כדי לאפשר ל-Compute Engine למחוק אוטומטית את הבקשה לשמירת מקום, בוחרים אחת מהשיטות הבאות:
כדי למחוק את הבקשה לשמירת מקום בתאריך ובשעה מסוימים, שולחים בקשת
POSTאל ה-methodbeta.reservations.insert. בגוף הבקשה, כוללים את השדהdeleteAtTime.לדוגמה, כדי ליצור הזמנה על ידי ציון תבנית של מכונה, למחוק אוטומטית את ההזמנה בתאריך ובשעה ספציפיים ולשתף את ההזמנה עם שני פרויקטים של צרכנים, שולחים בקשה באופן הבא:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "INSTANCE_TEMPLATE_URL" } }מחליפים את
DELETE_AT_TIMEבתאריך ובשעה בפורמט של חותמת זמן RFC 3339, שצריך להיות כזה:YYYY-MM-DDTHH:MM:SSOFFSETמחליפים את מה שכתוב בשדות הבאים:
YYYY-MM-DD: תאריך בפורמט של שנה בת 4 ספרות, חודש בן 2 ספרות ויום בחודש בן 2 ספרות, מופרדים במקפים (-).
HH:MM:SS: שעה בפורמט של 2 ספרות (בפורמט של 24 שעות), דקות בפורמט של 2 ספרות ושניות בפורמט של 2 ספרות, מופרדות בנקודתיים (:).
OFFSET: אזור הזמן בפורמט של היסט מהזמן האוניברסלי המתואם (UTC). לדוגמה, כדי להשתמש בשעון החוף המערבי (PST), מציינים-08:00. לחלופין, כדי לא להשתמש בהזחה, מצייניםZ.
כדי למחוק את ההזמנה אחרי פרק זמן מסוים, שולחים
POSTבקשה אל ה-methodbeta.reservations.insert. בגוף הבקשה, כוללים את השדהdeleteAfterDuration.לדוגמה, כדי ליצור שמירת מקום על ידי ציון תבנית מכונה, למחוק אוטומטית את שמירת המקום אחרי פרק זמן מסוים ולשתף את שמירת המקום עם שני פרויקטים של צרכנים, שולחים בקשה באופן הבא:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "INSTANCE_TEMPLATE_URL" } }מחליפים את
DELETE_AFTER_DURATIONבמשך הזמן בשניות. לדוגמה, מציינים86400ל-86,400 שניות (יום אחד).
ציון מכונה וירטואלית קיימת
אפשר ליצור הקצאה משותפת על סמך מכונה וירטואלית קיימת רק באותו פרויקט ובאותו אזור של המכונה הווירטואלית.
אחרי שיוצרים את ההזמנה, אפשר להשתמש בה על ידי יצירת מכונות וירטואליות עם מאפיינים שתואמים למכונה הווירטואלית לדוגמה. כדי לעשות את זה, מבצעים אחת מהפעולות הבאות:
כך יוצרים תבנית של הגדרות מכונה ומשתמשים בה:
יוצרים תבנית של הגדרות מכונה על סמך ה-VM לדוגמה, בלי לשנות את המאפיינים של ה-VM לדוגמה.
יוצרים מכונות וירטואליות באמצעות התבנית החדשה שנוצרה, באחת מהדרכים הבאות או בשתיהן:
יוצרים מכונה וירטואלית עם מאפיינים שזהים למכונה הווירטואלית של ההפניה באופן הבא:
בפרויקט הבעלים, יוצרים מכונה וירטואלית (VM) על סמך המכונה הווירטואלית להפניה בלי לשנות את המאפיינים של המכונה הווירטואלית שיוצרים.
בפרויקטים של הצרכן, יוצרים מכונה וירטואלית תוך הקפדה ידנית על התאמה בין המאפיינים שלה לבין המאפיינים של המכונה הווירטואלית שאליה מתייחסים.
כדי ליצור הזמנה משותפת שמשתמשת במאפיינים של מכונה וירטואלית קיימת:
פותחים את הדף Reservations במסוף Google Cloud .
לוחצים על Create reservation (יצירת בקשה לשמירת מקום). ייפתח הדף Create a reservation.
בשדה Name, נותנים שם לבקשה.
ברשימות Region ו-Zone, בוחרים את האזור והתחום שבהם רוצים לשריין את המשאבים.
בקטע Share type (סוג השיתוף):
כדי לשתף הזמנה עם פרויקטים אחרים, בוחרים באפשרות משותף.
לוחצים על Add projects ובוחרים את הפרויקטים מהארגון של הפרויקט הנוכחי שאיתם רוצים לשתף את ההזמנה. אפשר לבחור עד 100 פרויקטים לצרכנים.
אופציונלי: כדי לאפשר למשימות אימון בהתאמה אישית או למשימות חיזוי ב-Vertex AI להשתמש בשמירת מקום למכונות וירטואליות של GPU, בקטע Google Cloud services בוחרים באפשרות Share reservation.
בקטע Use with VM instance, בוחרים באחת מהאפשרויות הבאות:
כדי להשתמש אוטומטית במכונות וירטואליות שמתאימות לפרטי הבקשה, מסמנים את האפשרות Use reservation automatically.
כדי להשתמש במשאבים שמתאימים לפרטי הבקשה רק כשיוצרים מכונות וירטואליות שמיועדות ספציפית אליה (לפי שם), בוחרים באפשרות Select specific reservation.
בקטע Resource details (פרטי המשאב), מבצעים את הפעולות הבאות:
בשדה Number of VM instances מקלידים את מספר המכונות הווירטואליות שרוצים לשריין.
כדי לציין את ההגדרות של המכונות הווירטואליות באמצעות מכונה וירטואלית להשוואה, בוחרים באפשרות Use existing VM ואז בוחרים את המכונה הווירטואלית מהרשימה שמופיעה.
בקטע Auto-delete, אפשר להפעיל את אפשרות המחיקה האוטומטית כדי ש-Compute Engine ימחק אוטומטית את הבקשה לשמירת מקום בתאריך ובשעה ספציפיים. מתי זה שימושי? למשל כשמתכננים להפסיק את השימוש במשאבים ששוריינו ורוצים למנוע חיובים לא נחוצים.
לוחצים על Create כדי ליצור את הבקשה לשמירת מקום. ייפתח הדף Reservations. יכולות לעבור עד דקה עד שהבקשה תיווצר. כדי לראות מתי הבקשה תיווצר ב-Compute Engine, אתם יכולים לפתוח את רשימת הבקשות לשמירת מקום.
ציון מאפיינים ישירות
כדי ליצור הזמנה משותפת על ידי ציון נכסים ישירות, בוחרים באחת מהאפשרויות הבאות:
המסוף
פותחים את הדף Reservations במסוף Google Cloud .
לוחצים על Create reservation. ייפתח הדף Create a reservation.
בשדה Name, נותנים שם לבקשה.
ברשימות Region ו-Zone, בוחרים את האזור והתחום שבהם רוצים לשריין את המשאבים.
בקטע Share type (סוג השיתוף):
כדי לשתף את ההזמנה עם פרויקטים אחרים, בוחרים באפשרות Shared.
לוחצים על Add projects (הוספת פרויקטים) ובוחרים את הפרויקטים מהארגון של הפרויקט הנוכחי שרוצים לשתף איתם את השריין. אפשר לבחור עד 100 פרויקטים לצרכנים.
אופציונלי: כדי לאפשר למשימות אימון בהתאמה אישית או למשימות חיזוי ב-Vertex AI להשתמש בשמירת מקום למכונות וירטואליות של GPU, בקטע Google Cloud services בוחרים באפשרות Share reservation.
בקטע Use with VM instance, בוחרים אחת מהאפשרויות הבאות:
כדי להשתמש אוטומטית במכונות וירטואליות שמתאימות לפרטי הבקשה, מסמנים את האפשרות Use reservation automatically.
כדי להשתמש במשאבים שמתאימים לפרטי הבקשה רק כשיוצרים מכונות וירטואליות שמיועדות ספציפית אליה (לפי שם), בוחרים באפשרות Select specific reservation.
בקטע Resource details (פרטי המשאב), מבצעים את הפעולות הבאות:
בשדה Number of VM instances, כותבים כמה מכונות וירטואליות רוצים לשריין.
מציינים את סדרת המכונות ואת סוג המכונה שרוצים לשמור.
בקטע Auto-delete, אפשר להפעיל את אפשרות המחיקה האוטומטית כדי ש-Compute Engine ימחק אוטומטית את הבקשה לשמירת מקום בתאריך ובשעה ספציפיים. מתי זה שימושי? למשל כשמתכננים להפסיק את השימוש במשאבים ששוריינו ורוצים למנוע חיובים לא נחוצים.
לוחצים על Create כדי ליצור את הבקשה לשמירת מקום. ייפתח הדף Reservations. הבקשה תיווצר תוך כדקה. כדי לראות מתי הבקשה תיווצר ב-Compute Engine, אתם יכולים לפתוח את רשימת הבקשות לשמירת מקום.
gcloud
כדי ליצור הקצאת מקום משותפת, משתמשים בפקודה gcloud compute reservations create עם הדגלים --share-setting=projects ו---share-with.
כדי ליצור הזמנה משותפת על ידי ציון מאפיינים ישירות ובלי לכלול דגלים אופציונליים, מריצים את הפקודה הבאה:
gcloud compute reservations create RESERVATION_NAME \
--machine-type=MACHINE_TYPE \
--share-setting=projects \
--share-with=CONSUMER_PROJECT_IDS \
--vm-count=NUMBER_OF_VMS \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
RESERVATION_NAME: השם של ההזמנה שרוצים ליצור.
MACHINE_TYPE: סוג המכונה לשימוש בכל מכונה וירטואלית.
CONSUMER_PROJECT_IDS: רשימה מופרדת בפסיקים של מזהי הפרויקטים שיכולים להשתמש בהזמנה הזו – לדוגמה,project-1,project-2. אפשר לכלול עד 100 פרויקטים לצרכנים. הפרויקטים האלה צריכים להיות באותו ארגון כמו פרויקט הבעלים. לא כוללים את פרויקט הבעלים. כברירת מחדל, כבר יש הרשאה להשתמש בהזמנה.
NUMBER_OF_VMS: מספר המכונות הווירטואליות שרוצים לשריין.
ZONE: האזור שבו רוצים לשריין משאבים.
לדוגמה, כדי ליצור מקום שמור באזור us-central1-a ל-10 מכונות וירטואליות שכל אחת מהן משתמשת במכונה עם קונפיגורציה מוגדרת (predefined) מסוג N2 עם 4 vCPU, ולשתף את המקום השמור עם הפרויקטים project-1 ו-project-2, מריצים את הפקודה הבאה:
gcloud compute reservations create my-reservation \
--machine-type=n2-standard-4 \
--share-setting=projects \
--share-with=project-1,project-2 \
--vm-count=10 \
--zone=us-central1-a
אפשר גם לבצע אחת או יותר מהפעולות הבאות:
כדי לצרף יחידות GPU למכונות וירטואליות מסוג N1 שהוזמנו, צריך לכלול את הדגל
--accelerator.gcloud compute reservations create RESERVATION_NAME \ --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
NUMBER_OF_ACCELERATORS: מספר יחידות ה-GPU שרוצים להוסיף לכל מכונה וירטואלית (VM) שהוזמנה.
ACCELERATOR_TYPE: דגם GPU נתמך למכונות וירטואליות מסוג N1. מוודאים שדגם ה-GPU שבחרתם זמין בתחום שבו אתם רוצים לשריין משאבים. אחרת, יצירת ההזמנה תיכשל.
כדי לצרף דיסקים מסוג Local SSD לסוג מכונה שלא כולל דיסקים מסוג Local SSD כברירת מחדל, צריך לכלול את הדגל
--local-ssd. אפשר לצרף רק דיסקים מסוג Local SSD בנפח של 375GB.gcloud compute reservations create RESERVATION_NAME \ --local-ssd=count=NUMBER_OF_LOCAL_SSD_DISKS,size=375,interface=INTERFACE_TYPE \ --machine-type=MACHINE_TYPE \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
NUMBER_OF_LOCAL_SSD_DISKS: מספר דיסקי ה-SSD המקומיים לצירוף.
INTERFACE_TYPE: סוג ממשק הדיסק שבו רוצים להשתמש בכל דיסק SSD מקומי, ושסוג המכונה שצוין תומך בו. מציינים אחד מהערכים הבאים:לממשק הדיסק NVME:
nvmeלממשק דיסק SCSI:
scsi
כדי שהמכונות הווירטואליות השמורות ישתמשו בפלטפורמת CPU מינימלית ספציפית במקום בפלטפורמת המעבד שמוגדרת כברירת מחדל באזור, צריך לכלול את הדגל
--min-cpu-platform.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --min-cpu-platform="MIN_CPU_PLATFORM" \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEמחליפים את
MIN_CPU_PLATFORMבפלטפורמת CPU מינימלית. כדי לוודא שפלטפורמת מעבד זמינה באזור שבו אתם מזמינים משאבים, אפשר לראות את פלטפורמות המעבד הזמינות לפי אזור.כדי לציין שרק מכונות וירטואליות שמיועדות ספציפית לשימוש בהזמנה הזו יכולות להשתמש בה, צריך לכלול את האפשרות
--require-specific-reservation.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --require-specific-reservation \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEכדי לאפשר למשימות אימון בהתאמה אישית או למשימות חיזוי ב-Vertex AI להשתמש במכונות וירטואליות של GPU ששמורות, צריך להוסיף את הדגל
--reservation-sharing-policyעם הערךALLOW_ALL.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --reservation-sharing-policy=ALLOW_ALL \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEכדי לאפשר ל-Compute Engine למחוק אוטומטית את הבקשה לשמירת מקום, בוחרים באחת מהשיטות הבאות:
כדי למחוק את הבקשה לשמירת מקום בתאריך ובשעה ספציפיים, משתמשים בפקודה
gcloud beta compute reservations createעם הדגל--delete-at-time.gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEמחליפים את
DELETE_AT_TIMEבתאריך ובשעה בפורמט של חותמת זמן RFC 3339, שצריכה להיות ככה:YYYY-MM-DDTHH:MM:SSOFFSETמחליפים את מה שכתוב בשדות הבאים:
YYYY-MM-DD: תאריך בפורמט של שנה בת 4 ספרות, חודש בן 2 ספרות ויום בחודש בן 2 ספרות, מופרדים במקפים (-).
HH:MM:SS: שעה בפורמט של שעה בת 2 ספרות בשיטת 24 שעות, דקות בנות 2 ספרות ושניות בנות 2 ספרות, מופרדות באמצעות נקודתיים (:).
OFFSET: אזור הזמן בפורמט של היסט מהזמן האוניברסלי המתואם (UTC). לדוגמה, כדי להשתמש בשעון החוף המערבי (PST), מציינים את הערך-08:00. לחלופין, כדי לא להשתמש בהזחה, מצייניםZ.
כדי למחוק את ההזמנה אחרי משך זמן מסוים, משתמשים בפקודה
gcloud beta compute reservations createעם הדגל--delete-after-duration.gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONEמחליפים את
DELETE_AFTER_DURATIONבמשך זמן בימים, בשעות, בדקות או בשניות. לדוגמה, מציינים30mל-30 דקות, או1d2h3m4sליום אחד, שעתיים, 3 דקות ו-4 שניות.
Terraform
כדי ליצור בקשה לשמירת מקום, משתמשים במשאב google_compute_reservation של Terraform.
כדי לשתף הזמנה עם פרויקטים אחרים, מגדירים את הבלוק share_settings:
- מגדירים את השדה
share_typeלערךSPECIFIC_PROJECTS. - בבלוק
project_map, מציינים את מזהי הפרויקטים של הפרויקטים שרוצים לשתף איתם את ההזמנה הזו.
מידע נוסף על השימוש ב-Terraform זמין במאמר שימוש ב-Terraform עם Google Cloud.
REST
כדי ליצור בקשה לשמירת מקום משותפת, שולחים בקשת POST אל ה-method reservations.insert.
בגוף הבקשה, כוללים את הפרטים הבאים:
השדה
projectMap.השדה
shareTypeמוגדר ל-SPECIFIC_PROJECTS.
לדוגמה, כדי ליצור הזמנה משותפת בלי לכלול שדות אופציונליים ולשתף את ההזמנה עם שני פרויקטים צרכניים, שולחים את בקשת ה-POST הבאה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations
{
"name": "RESERVATION_NAME",
"shareSettings": {
"shareType": "SPECIFIC_PROJECTS",
"projectMap": {
"CONSUMER_PROJECT_ID_1": {
"projectId": "CONSUMER_PROJECT_ID_1"
},
"CONSUMER_PROJECT_ID_2": {
"projectId": "CONSUMER_PROJECT_ID_2"
}
}
},
"specificReservation": {
"count": "NUMBER_OF_VMS",
"instanceProperties": {
"machineType": "MACHINE_TYPE"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו רוצים לשריין משאבים.
ZONE: האזור שבו רוצים לשמור את המשאבים.
RESERVATION_NAME: השם של ההזמנה שרוצים ליצור.
CONSUMER_PROJECT_ID_1ו-CONSUMER_PROJECT_ID_2: מזהי הפרויקטים שיכולים להשתמש בהזמנה הזו. אפשר לכלול עד 100 פרויקטים לצרכן. הפרויקטים האלה צריכים להיות באותו ארגון כמו פרויקט הבעלים. לא כוללים את פרויקט הבעלים. כברירת מחדל, כבר מותר להשתמש בהזמנה.
NUMBER_OF_VMS: מספר המכונות הווירטואליות שרוצים לשמור.
MACHINE_TYPE: סוג המכונה לשימוש בכל מכונה וירטואלית.
לדוגמה, כדי ליצור מקום שמור על ידי ציון תבנית של הגדרות מכונה גלובלית בתחום (zone) us-central1-a, לשתף את המקום השמור עם הפרויקטים project-1 ו-project-2, ולהזמין עשר מכונות וירטואליות שכל אחת מהן משתמשת במכונה עם קונפיגורציה מוגדרת (predefined) מסוג N2 עם 4 vCPU, שולחים את הבקשה הבאה POST:
POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
{
"name": "my-reservation",
"shareSettings": {
"shareType": "SPECIFIC_PROJECTS",
"projectMap": {
"project-1": {
"projectId": "project-1"
},
"project-2": {
"projectId": "project-2"
}
}
},
"specificReservation": {
"count": "10",
"instanceProperties": {
"machineType": "n2-standard-4",
}
}
}
אפשר גם לבצע אחת או יותר מהפעולות הבאות:
כדי לצרף יחידות GPU למכונות וירטואליות מסוג N1 שהוזמנו, צריך לכלול את השדה
guestAcceleratorsבגוף הבקשה.לדוגמה, כדי ליצור הזמנה שמשותפת עם שני פרויקטים צרכניים ולצרף מעבדי GPU לכל מכונות ה-VM מסוג N1 שהוזמנו, שולחים את הבקשה הבאה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": NUMBER_OF_ACCELERATORS, "acceleratorType": "ACCELERATOR_TYPE" } ], "machineType": "MACHINE_TYPE" } } }מחליפים את מה שכתוב בשדות הבאים:
NUMBER_OF_ACCELERATORS: מספר יחידות ה-GPU שרוצים להוסיף לכל מכונה וירטואלית (VM) שהוזמנה.
ACCELERATOR_TYPE: דגם GPU נתמך למכונות וירטואליות מסוג N1. מוודאים שדגם ה-GPU שבחרתם זמין בתחום שבו אתם רוצים לשריין משאבים. אחרת, יצירת ההזמנה תיכשל.
כדי לצרף דיסקים מסוג SSD מקומי לסוג מכונה שלא כולל דיסקים מסוג SSD מקומי כברירת מחדל, צריך לכלול את השדה
localSsdsבגוף הבקשה. אפשר לצרף רק דיסקים מקומיים מסוג SSD בנפח של 375 GB.לדוגמה, כדי לצרף שני דיסקים מסוג Local SSD לסוג המכונה שרוצים להקצות, תוך ציון שני פרויקטים של צרכנים, שולחים את הבקשה הבאה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" }, { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" } ], "machineType": "MACHINE_TYPE" } } }מחליפים את
INTERFACE_TYPEבסוג ממשק הדיסק שרוצים שכל דיסק SSD מקומי ישתמש בו, ושנתמך בסוג המכונה שציינתם. מציינים אחד מהערכים הבאים:לממשק הדיסק NVME:
NVMEלממשק דיסק SCSI:
SCSI
כדי שהמכונות הווירטואליות השמורות ישתמשו בפלטפורמת CPU מינימלית ספציפית במקום בפלטפורמת ה-CPU שמוגדרת כברירת מחדל באזור, צריך לכלול את השדה
minCpuPlatformבגוף הבקשה.לדוגמה, כדי ליצור הזמנה משותפת תוך ציון פלטפורמת CPU מינימלית ושני פרויקטים של צרכנים, שולחים בקשה באופן הבא:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE", "minCpuPlatform": "MIN_CPU_PLATFORM" } } }מחליפים את
MIN_CPU_PLATFORMבפלטפורמת CPU מינימלית. כדי לוודא שפלטפורמת מעבד זמינה באזור שבו אתם מזמינים משאבים, אפשר לראות את פלטפורמות המעבד הזמינות לפי אזור.כדי לציין שרק מכונות וירטואליות שמיועדות ספציפית לשימוש במקום השמור הזה יכולות להשתמש בו, צריך לכלול את השדה
specificReservationRequiredבגוף הבקשה ולהגדיר את השדה לערךtrue.לדוגמה, כדי ליצור הזמנה ספציפית ולשתף אותה עם שני פרויקטים צרכניים, שולחים בקשה כזו:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } }, "specificReservationRequired": true }כדי לאפשר למשימות אימון בהתאמה אישית או למשימות חיזוי ב-Vertex AI להשתמש בשמירת מקום למכונות וירטואליות של GPU, צריך לכלול את השדה
serviceShareTypeולהגדיר אותו לערךALLOW_ALL.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }כדי לאפשר ל-Compute Engine למחוק אוטומטית את הבקשה לשמירת מקום, בוחרים אחת מהשיטות הבאות:
כדי למחוק את הבקשה לשמירת מקום בתאריך ובשעה מסוימים, שולחים בקשת
POSTאל ה-methodbeta.reservations.insert. בגוף הבקשה, כוללים את השדהdeleteAtTime.לדוגמה, כדי ליצור הזמנה תוך ציון תאריך ושעה למחיקת ההזמנה, ולשתף את ההזמנה עם שני פרויקטים של צרכנים, שולחים בקשה באופן הבא:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }מחליפים את
DELETE_AT_TIMEבתאריך ובשעה בפורמט של חותמת זמן RFC 3339, שצריכה להיות ככה:YYYY-MM-DDTHH:MM:SSOFFSETמחליפים את מה שכתוב בשדות הבאים:
YYYY-MM-DD: תאריך בפורמט של שנה בת 4 ספרות, חודש בן 2 ספרות ויום בחודש בן 2 ספרות, מופרדים במקפים (-).
HH:MM:SS: שעה בפורמט של שעה בת 2 ספרות בשיטת 24 שעות, דקות בנות 2 ספרות ושניות בנות 2 ספרות, מופרדות באמצעות נקודתיים (:).
OFFSET: אזור הזמן בפורמט של היסט מזמן אוניברסלי מתואם (UTC). לדוגמה, כדי להשתמש בשעון החוף המערבי (PST), מציינים-08:00. לחלופין, כדי לא להשתמש בהיסט, מצייניםZ.
כדי למחוק את ההזמנה אחרי פרק זמן מסוים, שולחים
POSTבקשה אל ה-methodbeta.reservations.insert. בגוף הבקשה, כוללים את השדהdeleteAfterDuration.לדוגמה, כדי ליצור הזמנה ש-Compute Engine ימחק אחרי משך זמן מסוים, ולשתף את ההזמנה עם שני פרויקטים של צרכנים, שולחים בקשה באופן הבא:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }מחליפים את
DELETE_AFTER_DURATIONבמשך זמן בשניות. לדוגמה, מציינים86400ל-86,400 שניות (יום אחד).
פתרון בעיות
איך פותרים בעיות ביצירת הזמנות