כברירת מחדל, לכל מכונה יש ממשק רשת אחד שקובע באיזו רשת VPC המכונה משתמשת. אפשר ליצור מכונה עם כמה ממשקי רשת, כשכל ממשק חייב להתחבר לרשת משנה אחרת. כל תת-רשת מגדירה את טווח כתובות ה-IPv4 או ה-IPv6 שאפשר להקצות למכונה.
למידע נוסף, קראו את המאמרים הבאים:
כברירת מחדל, Google Cloud יוצר רשת VPC במצב אוטומטי בשם default לכל פרויקט. כדי להשתמש ברשת אחרת או ברשת משנה שיצרתם ידנית ברשת VPC במצב אוטומטי או במצב מותאם אישית, צריך לציין את רשת המשנה כשיוצרים את המכונה ומגדירים את ממשק הרשת.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות ליצירת מכונה עם רשת משנה ספציפית, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute (v1) (roles/compute.instanceAdmin.v1) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירת מכונה עם רשת משנה ספציפית. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור מכונה עם רשת משנה ספציפית, צריך את ההרשאות הבאות:
- compute.instances.create בפרויקט
-
כדי לציין רשת משנה למכונה:
compute.subnetworks.useבפרויקט או ברשת המשנה שנבחרה -
כדי להקצות כתובת IP חיצונית למכונה כשמשתמשים ברשת VPC:
compute.subnetworks.useExternalIpבפרויקט או ברשת המשנה שנבחרה
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
דרישות
כשיוצרים מכונה ברשת משנה, צריך להביא בחשבון את הכללים הבאים:
- אם לא מציינים רשת או רשת משנה, Compute Engine משתמש ברשת ה-VPC שמוגדרת כברירת מחדל וברשת המשנה האוטומטית שנמצאת באותו אזור של המכונה.
- אם לא מציינים רשת, Compute Engine מסיק את הרשת מרשת המשנה שצוינה.
- אם מציינים רשת, צריך לציין גם רשת משנה ששייכת לאותה רשת. אחרת, יצירת המכונה תיכשל.
צריך ליצור את רשת המשנה שבה רוצים להשתמש לפני שיוצרים את המכונה. מידע נוסף זמין במאמר יצירה וניהול של רשתות VPC.
יצירת מכונה ברשת משנה ספציפית
כדי ליצור מכונה ברשת משנה ספציפית:
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
אם מוצגת בקשה, בוחרים את הפרויקט ולוחצים על Continue.
הדף Create an instance מופיע ובו החלונית Machine configuration.
בחלונית Machine configuration:
- בשדה Name, מציינים שם למכונה. מידע נוסף זמין במאמר מוסכמות למתן שמות למשאבים.
אופציונלי: בשדה Zone, בוחרים אזור למכונה הזו.
ברירת המחדל היא כל. אם לא תשנו את בחירת ברירת המחדל הזו, Google תבחר בשבילכם אזור באופן אוטומטי על סמך סוג המכונה והזמינות.
בוחרים את משפחת המכונות של המכונה. במסוף Google Cloud יוצגו סדרות המכונות שזמינות למשפחת המכונות שבחרתם. אלה האפשרויות הזמינות למשפחת המכונות:
- לשימוש כללי
- אופטימיזציה של המחשוב
- מותאמת לצריכת זיכרון גבוהה (memory-optimized)
- אופטימיזציה של נפח האחסון
- אופטימיזציה של הרשת
- מעבדים גרפיים
- יחידות TPU
בעמודה Series, בוחרים את סדרת המכונות של המכונה.
אם בחרתם באפשרות GPUs כמשפחת המכונות בשלב הקודם, בחרו את סוג ה-GPU הרצוי. סדרת המכונות נבחרת באופן אוטומטי בהתאם לסוג ה-GPU שנבחר.
בקטע Machine type, בוחרים את סוג המכונה של המכונה הווירטואלית.
בתפריט הניווט, לוחצים על Networking. בחלונית Networking שמופיעה:
כדי לאפשר תעבורת נתונים מסוג HTTP או HTTPS למכונה, בקטע Firewall בוחרים באפשרות Allow HTTP traffic או באפשרות Allow HTTPS traffic.
Compute Engine מוסיף תג רשת למכונה ויוצר את הכלל התואם של חומת האש לתעבורת נתונים נכנסת, שמאפשר את כל תעבורת הנתונים הנכנסת ב-
tcp:80(HTTP) או ב-tcp:443(HTTPS). תג הרשת משייך את כלל חומת האש למכונה. מידע נוסף זמין במאמר סקירה כללית של כללי חומת האש במסמכי התיעוד של Cloud Next Generation Firewall.כדי לציין את פרטי ממשק הרשת, עוברים לקטע Network interfaces ולוחצים על Add a network interface.
בקטע New network interface שמופיע:
- בשדה Network, בוחרים את רשת ה-VPC שמכילה את רשת המשנה שיצרתם.
- ברשימה Subnetwork, בוחרים את רשת המשנה שבה המכונה תשתמש.
- בשדה IP stack type בוחרים את סוג מחסנית ה-IP של ממשק הרשת.
- כדי לאשר את פרטי ממשק הרשת, לוחצים על Done.
אופציונלי: מציינים אפשרויות הגדרה אחרות. למידע נוסף, ראו אפשרויות הגדרה במהלך יצירת מכונה.
כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.
gcloud
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי ליצור מכונה מתמונה ציבורית או מתמונת מצב באמצעות Google Cloud CLI, פועלים לפי אותן הוראות וכוללים את דגלי הרשת שמוצגים בקטע הזה כשמריצים את הפקודה
gcloud compute instances create:gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes,image=projects/IMAGE_PROJECT/global/images/IMAGE,size=SIZE \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --stack-type=STACK_TYPE \ --private-network-ip=INTERNAL_IPV4_ADDRESS \ --address=EXTERNAL_IPV4_ADDRESS \ --nic-type=GVNICמחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה -
ZONE: האזור שבו נוצרה המכונה, למשלeurope-west1-b. האזור של המכונה נקבע לפי האזור (zone). -
MACHINE_TYPE: אופציונלי: סוג המכונה שבה משתמשים. -
IMAGE_PROJECT: אופציונלי: פרויקט התמונה שמכיל את התמונה -
IMAGE: אופציונלי: מציינים אחת מהאפשרויות הבאות:- גרסה ספציפית של קובץ האימג' של מערכת ההפעלה, לדוגמה
rocky-linux-9-optimized-gcp-v20240717. - משפחת תמונות, בפורמט
family/IMAGE_FAMILY. כך המכונה נוצרת מקובץ אימג' של מערכת ההפעלה העדכני ביותר, שלא הוצא משימוש. לדוגמה, אם מציינים את הערךfamily/rocky-linux-9-optimized-gcp, Compute Engine יוצר מכונה באמצעות הגרסה האחרונה של קובץ האימג' של מערכת ההפעלה במשפחת קובצי האימג' של Rocky Linux 9 שמותאמת ל-Google Cloud . למידע נוסף על השימוש במשפחות של קובצי אימג', ראו שיטות מומלצות למשפחות של קובצי אימג'.
- גרסה ספציפית של קובץ האימג' של מערכת ההפעלה, לדוגמה
-
SIZE: אופציונלי: הגודל של הדיסק החדש. הערך חייב להיות מספר שלם. יחידת המידה שמוגדרת כברירת מחדל היא GiB. -
NETWORK_NAME: אופציונלי: שם הרשת
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 החיצונית הסטטית שבה רוצים להשתמש עם ממשק הרשת. צריך לשמור מראש כתובת IPv4 חיצונית. מבצעים אחת מהפעולות הבאות:- מציינים כתובת IPv4 תקינה מרשת המשנה.
- אם אתם לא רוצים שלממשק הרשת תהיה כתובת IP חיצונית, השתמשו בדגל
--network-interface=no-address. - מציינים את הערך
address=''אם רוצים שהממשק יקבל כתובת IP חיצונית זמנית.
כדי לציין כתובת IPv6 חיצונית, צריך להשתמש בדגל
--external-ipv6-address.
-
Terraform
כדי ליצור מכונה ברשת משנה ספציפית, אפשר להשתמש במשאב google_compute_instance.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
כדי ליצור את קוד Terraform, אפשר להשתמש ברכיב Equivalent code במסוף Google Cloud .- נכנסים לדף VM instances במסוף Google Cloud .
- לוחצים על Create instance.
- מציינים את הפרמטרים הרצויים.
- בחלק העליון או התחתון של הדף, לוחצים על Equivalent code ואז על הכרטיסייה Terraform כדי לראות את הקוד של Terraform.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Go API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Java API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Node.js API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של Compute Engine באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Compute Engine Python API.
כדי לבצע אימות ב-Compute Engine, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
REST
פועלים לפי ההוראות של REST כדי ליצור מכונה מתמונה ציבורית או מתמונת מצב, אבל מציינים את השדה subnet בגוף הבקשה.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name":"VM_NAME", "disks":[ { "initializeParams":{ "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot":true } ], "networkInterfaces":[ { "network":"global/networks/NETWORK_NAME", "subnetwork":"regions/REGION/subnetworks/SUBNET_NAME", "stackType":"STACK_TYPE" } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT" } }
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו יוצרים את המכונה הווירטואלית -
ZONE: האזור שבו יוצרים את המכונה הווירטואלית -
MACHINE_TYPE_ZONE: האזור שבו נמצא סוג המכונה שרוצים להשתמש בו בשביל המכונה הווירטואלית החדשה -
MACHINE_TYPE: סוג המכונה, מוגדר מראש או בהתאמה אישית, של המכונה הווירטואלית החדשה -
VM_NAME: השם של המכונה הווירטואלית החדשה -
IMAGE_PROJECT: הפרויקט שמכיל את קובץ האימג'
. לדוגמה, אם מציינים אתdebian-12בתור משפחת קובצי האימג', צריך לציין אתdebian-cloudבתור פרויקט קובץ האימג'. -
IMAGE: מציינים אחת מהאפשרויות הבאות:
IMAGE: גרסה ספציפית של קובץ אימג' ציבורילדוגמה,
"sourceImage": "projects/debian-cloud/global/images/debian-12-bookworm-v20241112"
IMAGE_FAMILY: משפחת קובצי אימג'כשמציינים משפחת קובצי אימג', המכונה הווירטואלית נוצרת מקובץ האימג' העדכני ביותר של מערכת ההפעלה, שלא הוצא משימוש. לדוגמה, אם מציינים את הערך
"sourceImage": "projects/debian-cloud/global/images/family/debian-12", Compute Engine יוצרת מכונה וירטואלית מהגרסה העדכנית של קובץ האימג' של מערכת ההפעלה במשפחת קובצי האימג' של Debian 12.
-
NETWORK_NAME: אופציונלי: רשת ה-VPC שבה רוצים להשתמש בשביל ה-VM. אפשר לציין את הערךdefaultכדי להשתמש ברשת שמוגדרת כברירת מחדל. -
REGION: האזור שבו נמצאת רשת המשנה שצוינה. האזור צריך להיות זהה לאזור של המכונה הווירטואלית. -
SUBNET_NAME: השם של רשת המשנה שבה רוצים להשתמש -
STACK_TYPE: אופציונלי: סוג המחסנית של ממשק הרשת. אפשר לציין את הערךIPV4_ONLY,IPV4_IPV6אוIPV6_ONLY. ערך ברירת המחדל הואIPV4_ONLY.
ENABLE_SECURE_BOOT: אופציונלי: אם בחרתם תמונה שתומכת בתכונות של מכונה וירטואלית מוגנת, כברירת מחדל Compute Engine מפעיל את מודול הפלטפורמה המהימנה הווירטואלית (vTPM) ואת מעקב התקינות. כברירת מחדל, Compute Engine לא מפעיל את Secure Boot.אם מציינים את הערך
trueבשדהenableSecureBoot, המערכת של Compute Engine יוצרת מכונה וירטואלית שבה מופעלות כל שלוש התכונות של מכונה וירטואלית מוגנת. אחרי ש-Compute Engine מפעיל את ה-VM, כדי לשנות את האפשרויות של המכונה הווירטואלית המוגנת צריך לעצור את ה-VM.
מה השלב הבא?
- איך בודקים את הסטטוס של מכונה כדי לדעת מתי היא מוכנה לשימוש.
- איך מתחברים למכונה.