כל מכונה של Compute Engine מאחסנת את המטא-נתונים שלה בשרת מטא-נתונים. הנתונים האלה חיוניים להגדרה ולניהול של מופעי המחשוב. המטא-נתונים מאחסנים פרטים כמו מאפייני מכונה, הגדרות רשת ונתונים שמוגדרים על ידי המשתמש. למופעי החישוב יש גישה אוטומטית ל-API של שרת המטא-נתונים בלי צורך בהרשאה נוספת.
אתם יכולים לאחזר באופן פרוגרמטי פרטים ייחודיים של מכונות Compute, ולבצע אוטומציה של משימות כמו הקצאת משאבים, אופטימיזציה של ביצועים ופתרון בעיות בהגדרות של מכונות. Compute Engine מארגן את מפתחות המטא-נתונים והערכים האלה עבור פרויקטים ומופעי מחשוב במבנה היררכי של ספריות, ומאחסן את הרשומות כצמדי מפתח/ערך.
בסקירה הכללית הזו מוסבר על הסוגים והמאפיינים של מטא-נתונים ברמת המופע ומטא-נתונים ברמת הפרויקט, כדי לעזור לכם לנהל את הסביבות שלכם ולא לבצע בהן פעולות באופן אוטומטי.
שימושים במטא-נתונים של מכונות וירטואליות
בקטעים הבאים מתוארים כמה תרחישים שבהם אפשר להשתמש ברשומות של מטא-נתונים כדי לנהל את המכונות הווירטואליות.
סקריפטים להפעלה ולכיבוי
שרת המטא-נתונים שימושי במיוחד כשמשתמשים בו בשילוב עם סקריפטים להפעלה ולכיבוי, כי אפשר להשתמש בשרת המטא-נתונים כדי לקבל באופן פרוגרמטי מידע ייחודי על VM, בלי הרשאה נוספת.
לדוגמה, אתם יכולים לכתוב סקריפט לטעינה בזמן ההפעלה שמקבל את צמד המפתח/ערך של המטא-נתונים של כתובת ה-IP החיצונית של מכונה וירטואלית, ולהשתמש בכתובת ה-IP הזו בסקריפט כדי להגדיר מסד נתונים. מכיוון שמפתחות המטא-נתונים המוגדרים מראש של Compute Engine זהים בכל מכונה וירטואלית, אפשר להשתמש בסקריפט שוב בלי לעדכן אותו לכל מכונה וירטואלית. כך תוכלו ליצור קוד פחות שביר לאפליקציות שלכם.
- מידע נוסף על סקריפטים לטעינה בזמן ההפעלה זמין במאמר סקירה כללית על סקריפטים לטעינה בזמן ההפעלה.
- מידע נוסף על סקריפטים של כיבוי זמין במאמר הפעלת סקריפטים של כיבוי.
תחזוקת מארח
שרת המטא-נתונים מספק מידע על אפשרות התזמון של מכונה וירטואלית בספריית המטא-נתונים scheduling/ באמצעות המפתח maintenance-event. אתם יכולים להשתמש בערכי המטא-נתונים האלה כדי לקבל התראה כשאירוע תחזוקה עומד להתרחש, וכך להכין את הסביבה שלכם לאירוע.
מידע נוסף זמין במאמר קבלת התראות על מיגרציה פעילה.
מאפייני אורחים
מאפייני אורח הם סוג ספציפי של מטא-נתונים בהתאמה אישית שהאפליקציות יכולות לכתוב אליהם בזמן שהן פועלות במכונות הווירטואליות. השתמשו במאפייני אורחים רק במקרים שבהם נדרשות כמויות קטנות של נתונים שלא משתנים לעיתים קרובות. מידע נוסף על מאפייני אורחים זמין במאמר הגדרה של מאפייני אורחים ושאילתות לגביהם.
מאפייני השותפים
מאפייני שותף הם סוג ספציפי של מטא-נתונים של מופע. Google Cloudשירותים יכולים להשתמש במאפייני שותף כדי ליצור מרחב שמות שבו הם יכולים להגדיר רשומות של מטא-נתונים של מופע. כדי להגדיר את השירות, אתם יכולים להגדיר, לעדכן, למחוק ולהציג את הערכים של רשומות המטא-נתונים של המכונה.
שיקולי אבטחה של מטא-נתונים
כששולחים בקשה לקבלת מידע משרת המטא-נתונים, הבקשה ותגובת המטא-נתונים שמתקבלת בעקבותיה אף פעם לא יוצאות מהמארח הפיזי שבו פועלת המכונה הווירטואלית.
עם זאת, לכל תהליך שיכול לשאול את כתובת ה-URL של המטא-נתונים יש גישה לכל הערכים בשרת המטא-נתונים. כולל ערכים של מטא-נתונים בהתאמה אישית, אישורי לקוח ומפתחות פרטיים שאתם כותבים לשרת. Google ממליצה לנקוט משנה זהירות כשכותבים ערכים רגישים בשרת המטא-נתונים או כשמריצים תהליכים של צד שלישי. צריך להפעיל ארגז חול לכל תהליך שלא אמורה להיות לו גישה לשרת המטא-נתונים.
תמחור
אינטראקציה עם שרת המטא-נתונים מתוך מכונה וירטואלית לא כרוכה בעלויות ולא משפיעה על מכסות ה-API של Compute Engine. ההגבלה הזו חלה גם על שאילתות של רשומות מטא-נתונים וגם על כתיבה של מאפייני אורח.
עם זאת, ניהול מטא-נתונים באמצעות gcloud CLI או Compute Engine API מחוץ למכונה הווירטואלית עדיין כפוף למכסות API רגילות של הפרויקט.
ברשימה הבאה מתואר איך שרת המטא-נתונים מטפל בעלויות ובמכסות של קריאות שבוצעו מתוך ה-VM:
- עלויות: קריאות לשרת המטא-נתונים, כולל אלה שמשתמשות בשם ה-DNS (
metadata.google.internal) או בכתובות ה-IP (169.254.169.254אוfd20:ce::254), לא כרוכות בחיובים על תעבורת נתונים יוצאת או על שירות. - מכסת Compute Engine API: קריאות לשרת המטא-נתונים לא צורכות מכסות אזוריות או מגבלות קצב של
compute.googleapis.comAPI. - מכסת IAM API: שרת המטא-נתונים לא מקיים אינטראקציה עם מכסות גלובליות של Identity and Access Management API.
- הגבלת קצב העברת נתונים (Throttling): לשרת המטא-נתונים יש מגבלות פנימיות, אבל דפוסי תשאול רגילים לא אמורים לגרום להגבלת קצב העברת נתונים.
נקודות קצה של שרת מטא-נתונים
אפשר לגשת לשרת המטא-נתונים מנקודות קצה של HTTP ושל HTTPS.
נקודות קצה של שרת מטא-נתונים ב-HTTP
אפשר לגשת לנקודות קצה של HTTP מכל סוגי המכונות הווירטואליות, כולל מכונות וירטואליות מוגנות.
אפשר להשתמש בנקודות הקצה הבאות כדי לגשת לשרת המטא-נתונים באמצעות HTTP:
- שם DNS (מומלץ):
http://metadata.google.internal/computeMetadata/v1 - כתובת IPv4:
http://169.254.169.254/computeMetadata/v1 - כתובת IPv6 (רק למכונות וירטואליות עם IPv6 בלבד):
http://[fd20:ce::254]/computeMetadata/v1
נקודות קצה (endpoint) של שרת מטא-נתונים ב-HTTPS
נקודות קצה של שרת מטא-נתונים ב-HTTPS מספקות אבטחה נוספת להעברת מידע בין שרת המטא-נתונים לבין המכונה הווירטואלית. נקודות הקצה האלה זמינות רק למכונות וירטואליות מוגנות.
אפשר להשתמש בנקודות הקצה הבאות כדי לגשת לשרת המטא-נתונים ממכונה וירטואלית מוגנת באמצעות HTTPS:
- שם DNS (מומלץ):
https://metadata.google.internal/computeMetadata/v1 - כתובת IPv4:
https://169.254.169.254/computeMetadata/v1 - כתובת IPv6 (רק למכונות וירטואליות עם IPv6 בלבד):
https://[fd20:ce::254]/computeMetadata/v1
יתרונות השימוש בנקודת הקצה של שרת המטא-נתונים מסוג HTTPS
לשימוש בנקודת הקצה (endpoint) של HTTPS כדי לשלוח שאילתות לשרת המטא-נתונים יש את היתרונות הבאים:
שיפור האבטחה: עוזר למנוע גישה לא מורשית למטא-נתונים רגישים. הוא מונע מהתוקפים לבצע את הפעולות הבאות:
- זיוף או התחזות לשרת המטא-נתונים כדי לקבל גישה למכונה וירטואלית
- צפייה במטא-נתונים רגישים או שינוי שלהם לפני שהם מגיעים למכונה הווירטואלית
הפחתת עלויות: עוזרת לכם להימנע מהעלויות שקשורות לפרצות אבטחה
איך התהליך עובד
במכונות וירטואליות מוגנות שמותקנת בהן סביבת האורח, התהליכים הבאים מתבצעים ב-VM:
Compute Engine יוצר שלוש תעודות באופן הבא:
- אישור בסיס בחתימה עצמית: אישור ייחודי ש-Compute Engine יוצר עבור המכונה הווירטואלית. Compute Engine יוצר את האישור הזה רק בהפעלה הראשונה של המכונה הווירטואלית, והוא תקף ל-50 שנה.
- אישור זהות של השרת: אישור לשרת המטא-נתונים.
אישור זהות של לקוח: אישור של הלקוח. שרת המטא-נתונים לא שומר את האישור הזה במטמון. סביבת האורח מקבלת אישור חדש משרת המטא-נתונים בכל קריאה לנקודת הקצה של אישור הלקוח. האישור הזה תקף ל-7 ימים. סביבת האורח צריכה לקרוא לנקודת הקצה לפחות כל 7 ימים כדי לקבל אישור חדש ולשמור על אישור תקף.
מידע על מיקומי האחסון של זהות הלקוח ואישורי הבסיס זמין במאמר איפה מאוחסנים האישורים.
באיתחול הראשון, Compute Engine מעביר את החלק הציבורי של אישור הבסיס לסביבת האורח של ה-VM באמצעות משתנה UEFI שנוצר על ידי Google. לאחר מכן, אישור הבסיס הזה מאוחסן במכונה הווירטואלית.
מדי פעם, סביבת האורח מבקשת אישור זהות של הלקוח. במקרה כזה, סוכן האורח מוריד את האישור משרת המטא-נתונים ומאמת אותו באמצעות אישור הבסיס של ה-VM.
כשמבצעים שאילתה לנקודת הקצה של שרת המטא-נתונים מסוג HTTPS, מציינים את אישורי הזהות של הלקוח, שבהם משתמשים שרת המטא-נתונים והמכונה הווירטואלית כדי לוודא שהשאילתה הזו מורשית.
הפעלת הגדרה אוטומטית של אישורים
אם רוצים שהמכונות או הפרויקטים יגדירו באופן אוטומטי את אישורי ה-HTTPS MDS, צריך להגדיר את מפתח המטא-נתונים disable-https-mds-setup במכונה או בפרויקט לערך FALSE.
מידע נוסף זמין במאמר מפתחות מטא-נתונים מוגדרים מראש.
איפה נשמרים האישורים
בקטעים הבאים מפורט מיקום האחסון של אישורי זהות של שורש ולקוח שנוצרים על ידי Compute Engine.
אישורי בסיס
CentOS/RHEL/Rocky
אישורים בסיסיים למכונות וירטואליות של CentOS, Red Hat Enterprise Linux (RHEL) ו-Rocky Linux מאוחסנים במיקום הבא:
/run/google-mds-mtls/root.crt
Debian/Ubuntu
אישורים בסיסיים למכונות וירטואליות של Debian ו-Ubuntu מאוחסנים במיקום הבא:
/run/google-mds-mtls/root.crt
פדורה
אישורי הבסיס למכונות וירטואליות של Fedora מאוחסנים במיקום הבא:
/run/google-mds-mtls/root.crt
SLES
אישורי הבסיס למכונות וירטואליות של SUSE Linux Enterprise Server (SLES) מאוחסנים במיקום הבא:
/run/google-mds-mtls/root.crt
Windows
אישורי הבסיס למכונות וירטואליות של Windows מאוחסנים במיקום הבא:
C:\ProgramData\Google\ComputeEngine\mds-mtls-root.crt
אישורי זהות לקוח
כל התהליכים שפועלים במכונה הווירטואלית יכולים לגשת לאישורי הזהות של הלקוח. הדבר נדרש כדי שלכל התהליכים תהיה גישה לשרת המטא-נתונים באמצעות נקודת הקצה של HTTPS, בדומה לנקודת הקצה של HTTP. מידע נוסף זמין במאמר שיקולי אבטחה בנושא מטא-נתונים.
Linux
אישורי זהות של לקוחות למכונות וירטואליות של Linux מאוחסנים במיקום הבא:
/run/google-mds-mtls/client.key
Windows
אישורי זהות של לקוחות למכונות וירטואליות של Windows מאוחסנים במיקומים הבאים:
C:\ProgramData\Google\ComputeEngine\mds-mtls-client.key
הפעלת אחסון של אישורי בסיס במאגר האישורים של מערכת ההפעלה
אם אתם רוצים ש-Compute Engine יוסיף באופן אוטומטי את אישור הבסיס של שרת המטא-נתונים של HTTPS למאגר האישורים המהימנים של מערכת ההפעלה, הגדירו את מפתח המטא-נתונים enable-https-mds-native-cert-store במכונה או בפרויקט לערך TRUE.
אם מפעילים את האפשרות הזו, Compute Engine מוסיף את אישור הבסיס למיקומים הבאים בנוסף למיקום ברירת המחדל שלהם.
CentOS/RHEL/Rocky
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
Debian/Ubuntu
/etc/ssl/certs/ca-certificates.crt
פדורה
/etc/pki/tls/certs/ca-bundle.crt
SLES
/etc/ssl/ca-bundle.pem
Windows
Cert:\LocalMachine\Root
מידע נוסף זמין במאמר בנושא מפתחות מטא-נתונים מוגדרים מראש.
רוטציה של אישור בסיס
אישור הבסיס של שרת המטא-נתונים של HTTPS עובר רוטציה בכל פעם שמכונה מתחילה ומפסיקה. במקרה כזה, כל האישורים שמבוססים על אישור הבסיס הקודם כבר לא תקפים ליצירת חיבורי HTTPS לשרת המטא-נתונים. אם מופעלת הגדרה אוטומטית של אישורים, סביבת האורח מעדכנת את אישורי הלקוח ואישורי הבסיס הקודמים במערכת הקבצים באמצעות אותו תהליך כמו בהפעלה הראשונה.
מפתחות מטא-נתונים מוגדרים מראש ומותאמים אישית
כל רשומת מטא-נתונים מאוחסנת בשרת המטא-נתונים כצמדי מפתח/ערך. מפתחות המטא-נתונים הם תלויי אותיות רישיות. המפתחות יכולים להיות מפתחות מטא-נתונים מוגדרים מראש או מפתחות מטא-נתונים בהתאמה אישית.
מפתחות מטא-נתונים מוגדרים מראש
מפתחות מטא-נתונים מוגדרים מראש הם מפתחות מטא-נתונים שנוצרו על ידי Compute Engine.
כשיוצרים מכונת VM, Compute Engine מגדיר באופן אוטומטי את ערכי המטא-נתונים של חלק מהמפתחות האלה במכונת ה-VM – לדוגמה, מזהה מכונת ה-VM או מזהה הפרויקט. במפתחות מוגדרים מראש שבהם Compute Engine לא מגדיר ערך באופן אוטומטי, אתם יכולים לבחור מתוך קבוצת ערכים שזמינים בהתאם להגדרות המערכת.
לדוגמה, כדי להפעיל OS Login במכונת VM, אפשר להגדיר את הערך של המפתח המוגדר מראש enable-oslogin ל-TRUE במכונת ה-VM הזו. כדי להשבית את OS Login במכונה וירטואלית מסוימת, אפשר לעדכן את הערך של המפתח ל-FALSE.
אפשר לעדכן רק את הערכים של המפתחות האלה, אבל לא את המפתחות עצמם.
מידע נוסף על מפתחות מטא-נתונים מוגדרים מראש ורשימה של המפתחות האלה זמין במאמר מפתחות מטא-נתונים מוגדרים מראש.
מפתחות מטא-נתונים בהתאמה אישית
מטא-נתונים בהתאמה אישית מאפשרים ליצור ולהשתמש בצמדי מפתח/ערך של מטא-נתונים משלכם במכונה וירטואלית ספציפית או בפרויקט. אתם יכולים להוסיף מפתחות חדשים של מטא-נתונים בהתאמה אישית, לעדכן את הערכים של המפתחות הקיימים ולהסיר רשומות של מטא-נתונים בהתאמה אישית כשאין בהן צורך. הגדרת מטא-נתונים בהתאמה אישית שימושית להעברת ערכים שרירותיים למכונות וירטואליות בפרויקט. הוא שימושי גם ליצירת סקריפטים של הפעלה וכיבוי.
במאמר הגדרת מטא-נתונים מותאמים אישית מוסבר איך מוסיפים, מעדכנים או מסירים מטא-נתונים מותאמים אישית למכונות וירטואליות.
סוגי המטא-נתונים
רשומות של מטא-נתונים של מכונות וירטואליות יכולות לספק מידע ספציפי למכונה וירטואלית מסוימת או לפרויקט מסוים. המטא-נתונים מחולקים למטא-נתונים של פרויקט, של אזור ושל מכונה, בהתאם להיקף שבו הגדרתם את המטא-נתונים.
מטא-נתונים של הפרויקט
מטא-נתונים של פרויקט מוגדרים בהיקף הפרויקט ומספקים מידע שרלוונטי לכל המכונות הווירטואליות בפרויקט. כשמגדירים את המטא-נתונים האלה, רשומות המטא-נתונים מועברות לכל המכונות הווירטואליות באותו פרויקט.
כדי להגדיר מטא-נתונים של פרויקט, אפשר להשתמש במפתחות מטא-נתונים מוגדרים מראש וגם במפתחות מטא-נתונים בהתאמה אישית. מידע נוסף על מפתחות מטא-נתונים מוגדרים מראש של פרויקטים ועל הגדרת מטא-נתונים מותאמים אישית של פרויקטים
מטא-נתונים אזוריים
מטא-נתונים של תחום מוגדר מוגדרים בהיקף של תחום מוגדר בתוך פרויקט, ומספקים מידע על מכונות וירטואליות באותו תחום מוגדר ספציפי באותו פרויקט. כשמגדירים מטא-נתונים אזוריים, רשומות המטא-נתונים מועברות לכל המכונות הווירטואליות באותו אזור שהוגדר באותו פרויקט. בהשוואה למטא-נתונים של פרויקט, מטא-נתונים אזוריים עוזרים לבודד תקלות ומספקים אמינות גבוהה יותר.
Compute Engine לא מספק מפתחות מוגדרים מראש למטא-נתונים אזוריים. כדי להגדיר מטא-נתונים אזוריים, צריך ליצור מפתחות מטא-נתונים מותאמים אישית. איך מגדירים מטא-נתונים מותאמים אישית לאזור
מטא-נתונים של מופע
מטא-נתונים של מכונה מספקים מידע על מכונה וירטואלית ספציפית. אתם מגדירים את המטא-נתונים של המכונה בנפרד לכל מכונה וירטואלית.
אפשר להשתמש במפתחות מטא-נתונים שהוגדרו מראש ובמפתחות מטא-נתונים בהתאמה אישית כדי להגדיר מטא-נתונים של מופע. מידע נוסף על מפתחות מטא-נתונים מוגדרים מראש של מופעים ועל הגדרת מטא-נתונים מותאמים אישית של מופעים
איך המטא-נתונים מסודרים
Compute Engine מאחסן ומנהל את מפתחות המטא-נתונים והערכים של המכונות הווירטואליות והפרויקטים שלכם ברשימות של ספריות. בהתאם לסוג המטא-נתונים, Compute Engine שומר את רשומות המטא-נתונים באחת מהספריות הבאות:
| סוג המטא-נתונים | ספרייה |
|---|---|
| מטא-נתונים של פרויקטים ואזורים |
|
| מטא-נתונים של מופע |
|
כל ספרייה מאחסנת רשומות של מטא-נתונים בצורה של צמדי מפתח/ערך. חלק מהרשומות של המטא-נתונים הן גם ספריות שמכילות מפתחות אחרים של מטא-נתונים. רשומות המטא-נתונים שמתפקדות כספריות מסומנות בקו נטוי בסוף (/) בשם המפתח של המטא-נתונים. לדוגמה, /project/attributes/ היא ספרייה בספרייה project/ שמכילה מפתחות אחרים של מטא-נתונים. כדי ליצור רשימת ספריות משלכם למטא-נתונים, צריך להשתמש בלוכסן נגרר (/) בשם המפתח של המטא-נתונים כשיוצרים את רשומת המטא-נתונים בהתאמה אישית.
כששולחים שאילתה לנקודת קצה של מטא-נתונים, הפורמט של גוף התגובה תלוי בנקודת הקצה. אם שולחים שאילתה לנקודת קצה שמאחסנת ערך יחיד, כמו hostname, גוף התשובה מכיל את הערך הזה כטקסט פשוט. אם שולחים שאילתה לנקודת קצה שמשמשת כספרייה, כמו /project/attributes/, גוף התשובה מכיל רשימה של הערכים בספרייה הזו, עם ערך אחד בכל שורה.
מידע נוסף על שאילתות של נקודות קצה של מטא-נתונים, כולל איך לבצע שאילתות רקורסיביות על ספריות או לעצב את התגובה כ-JSON, מופיע במאמר הצגה של מטא-נתונים של מכונה וירטואלית וביצוע שאילתות עליהם.
ערכי המטא-נתונים של הפרויקט והאזור מאוחסנים באותה ספרייה, project/. אם תגדירו ערכים שונים לאותם מפתחות של מטא-נתונים בהתאמה אישית למכונות וירטואליות ברמת הפרויקט וברמת האזור, הערכים של המטא-נתונים ברמת האזור של המפתחות האלה יקבלו עדיפות על פני הערכים של המטא-נתונים ברמת הפרויקט באזורים המתאימים.
- אם מוסיפים ערך של מטא-נתונים אזוריים למפתח מטא-נתונים שכבר יש לו ערך של מטא-נתונים ברמת הפרויקט, מערכת Compute Engine מבטלת את הערך של המטא-נתונים ברמת הפרויקט עבור המכונות הווירטואליות באזור שצוין, ומעדכנת את ספריית
/projectעם הערך האזורי. - אם מוסיפים ערך חדש של מטא-נתונים ברמת הפרויקט למפתח מטא-נתונים שכבר יש לו ערך של מטא-נתונים אזוריים, לא יקרה שום שינוי. המערכת של Compute Engine שומרת את ערך המטא-נתונים של התחום בספרייה
/projectבתחום הספציפי. - אם לא מציינים ערך של מטא-נתונים אזוריים למפתח מטא-נתונים מותאם אישית באזור מסוים, אבל למפתח יש ערך של מטא-נתונים ברמת הפרויקט, המכונות הווירטואליות ימשיכו לקבל את ערכי המטא-נתונים ברמת הפרויקט באזורים האלה.
לדוגמה, נניח שהגדרתם זוג מטא-נתונים של פרויקט: key-1=value-1. נניח שאתם מגדירים גם זוג מטא-נתונים אזוריים key-1=zonal-value-1 רק לאזור us-central1-a. כל המכונות הווירטואליות באזור us-central1-a בפרויקט שלכם מקבלות בירושה את key-1=zonal-value1 כזוג מטא-נתונים. זוג המטא-נתונים
נשאר key-1=value-1 לכל מכונות ה-VM באזורים אחרים שבהם לא הגדרתם
מטא-נתונים אזוריים ל-key-1.
מה השלב הבא?
- מידע על מפתחות המטא-נתונים המוגדרים מראש שזמינים ב- Google Cloud .
- איך מגדירים רשומות של מטא-נתונים בהתאמה אישית
- איך מגדירים מאפייני אורחים ומבצעים עליהם שאילתות
- אחרי שמגדירים ערכים למפתחות של המטא-נתונים, אפשר לקרוא איך לראות ולשאול את המידע של המטא-נתונים של המכונה הווירטואלית למכונה וירטואלית או לפרויקט.
- איך מקבלים הודעות על מיגרציה פעילה משרת המטא-נתונים