פונקציונליות של סוכן אורח

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

איך סוכן האורח עובד

החל מגרסה 20250901.00, סוכן האורח משתמש בארכיטקטורה מבוססת-תוספים. העיצוב הזה משפר את האמינות והגמישות על ידי הפרדת הפונקציות של הסוכן לרכיבים נפרדים.

ארכיטקטורת הסוכן האורח מורכבת מכמה רכיבים מרכזיים:

  • Guest agent manager: התהליך המרכזי במופע שמתחיל, מפסיק ועוקב אחרי כל הפלאגינים.
  • פלאגין ליבה: הפלאגין הזה מטפל בשירותים החיוניים שהמופע צריך כדי לפעול ב- Google Cloud. אי אפשר להשבית את הפונקציונליות שלו.
  • תוספים (פלאגינים אופציונליים): אלה פלאגינים שמשלבים את המופע עם שירותים אחרים של Google Cloud , כמו Cloud Monitoring. אתם יכולים לקבוע אילו מהתוספים האלה יפעלו במופע באמצעות VM Extension Manager.
  • VM Extension Manager: זהו שירות מנוהל Google Cloud שפועל בתשתית העורפית של Google ומנהל את מחזור החיים של תוספים אופציונליים, כולל ההתקנה והעדכונים שלהם.

מידע נוסף על הארכיטקטורה של סוכן האורח זמין במאמר מידע על סוכן האורח.

רצף ההפעלה ויחסי התלות

מנהל סוכן האורח פועל לפי רצף הפעלה ספציפי כדי לוודא שהמופע מוגדר בצורה נכונה להפעלה ב-Compute Engine. מיד אחרי שהתהליך מתחיל, מנהל הסוכנים מפעיל את תוסף הליבה, רכיב ייעודי שמטפל במשימות בסיסיות בסביבת האורח.

Linux

במופעי Linux, סוכן האורח פועל כשירות systemd בשם google-guest-agent-manager.service. רצף ההפעלה כולל את השלבים הבאים:

  1. הגדרת תלות ברשת: google-guest-agent-manager.service מתחיל אחרי יעד המערכת network-online.target. כך מוודאים שיש קישוריות בסיסית לרשת לפני שהסוכן מתקשר עם שרת המטא-נתונים או מבצע שלבי הגדרה אחרים. פרטים על ההטמעה מופיעים בקובץ ההגדרות של יחידת השירות google-guest-agent-manager.service.
  2. שליחת התראה על מוכנות: סוכן האורח מריץ את השלבים המינימליים הנדרשים להגדרה ואז משתמש ב-systemd-notify --ready כדי להודיע למערכת שהוא מוכן לפעולה ויכול לשרת רכיבים אחרים. הסוכן מבצע את השלבים המינימליים הבאים שנדרשים להגדרה:

Windows

במופעי Windows, סוכן האורח פועל כשירות Windows בשם GCEAgentManager. רצף ההפעלה כולל את השלבים הבאים:

  1. הפעלה של אתחול מושהה: סוג האתחול של השירות מוגדר כאוטומטי (התחלה מושהית). הפעולה הזו מאפשרת לשירותי הליבה של מערכת ההפעלה לעבור אתחול קודם, וכך מצמצמת את התחרות על משאבים במהלך שלב האתחול הראשוני. פרטים על ההטמעה זמינים בסקריפט ההתקנה של השירות.
  2. הגדרת סטטוס השירות: הסוכן מפעיל את ההגדרה המינימלית הנדרשת ואז מגדיר את סטטוס השירות SERVICE_RUNNING כדי להודיע למערכת שהוא פועל באופן מלא ומוכן לשרת רכיבים אחרים. הסוכן מבצע את השלבים המינימליים הנדרשים להגדרה:

שיטות מומלצות לתהליכים תלויים

אם יש לכם שירותים או סקריפטים בהתאמה אישית שתלויים בתכונות של סוכן האורח, כמו אתחול של אישורי MDS, אתם צריכים להגדיר תלות מפורשת בהפעלה כדי לוודא שהם יופעלו רק אחרי שהסוכן יהיה פעיל.

Linux

מוסיפים תלות בשירות systemd של סוכן האורח בקובץ היחידה, למשל:

[Unit]
After=google-guest-agent-manager.service

Windows

מוסיפים תלות בשירות Windows של סוכן האורח באמצעות service control כמו:

sc config "CustomService" depend= "GCEAgentManager"

פונקציונליות עיקרית

התוסף הליבה אחראי לשירותים הבסיסיים שהמכונה צריכה כדי לפעול ב-Compute Engine. בקטע הבא מפורטות הפונקציות שהתוסף הראשי מספק. אפשר להתאים אישית הרבה מהתכונות האלה באמצעות קובץ ההגדרות של סוכן האורח.

הגדרה ראשונית של מופע ואופטימיזציות

סוכן האורח מבצע כמה משימות הגדרה כדי להכין את המכונה להפעלה ב-Compute Engine. כפי שמוצג בטבלה הבאה, חלק מהמשימות מופעלות רק באתחול הראשון, ואחרות מופעלות בכל הפעלה.

משימה תדירות
יצירת מפתחות מארח SSH באיתחול הראשון
יצירת קובץ ההגדרות boto לשימוש ב-Cloud Storage באיתחול הראשון
אופטימיזציה ל-SSD מקומי בכל הפעלה
הפעלת תור מרובה בכל מכשירי virtionet בכל הפעלה

אפשר לשלוט במשימות ההגדרה האלה על ידי הגדרת האפשרויות InstanceSetup בקובץ ההגדרות של סוכן האורח. לדוגמה, אפשר להשבית את האופטימיזציה של Local SSD על ידי הגדרת optimize_local_ssd = false.

איסוף נתוני טלמטריה של המערכת

סוכן האורח מתעד מידע טלמטרי בסיסי של המערכת בזמן האתחול ואחר כך במרווחי זמן קבועים, לפחות כל 24 שעות. המידע שמתועד כולל את הפרטים הבאים:

  • גרסה וארכיטקטורה של סוכן אורח
  • השם והגרסה של מערכת ההפעלה
  • גרסת הליבה של מערכת ההפעלה
  • אפליקציה נתמכת של יצרן תוכנה בלתי תלוי (ISV) שפועלת במופע של מחשוב וגרסת האפליקציה המוכרת

    אפליקציות נתמכות של ספקי תוכנה עצמאיים (ISV)

    • Apache Cassandra
    • ‫Apache Hadoop
    • Apache Spark
    • שרת אינטרנט של Apache
    • Citrix Cloud Connector
    • Citrix Delivery Controller
    • Citrix StoreFront
    • Citrix Virtual Delivery Agent
    • EDB Postgres
    • ‫EDB Postgres Advanced Server‏ (EPAS)
    • ‏Kubernetes
    • MariaDB
    • Memcached
    • Microsoft Active Directory
    • Microsoft Message Queuing (MSMQ)
    • Microsoft SQL Server
    • MongoDB
    • MySQL
    • Oracle Data Guard
    • Oracle Database
    • Oracle E-Business Suite
    • Oracle GoldenGate
    • Oracle JD Edwards EnterpriseOne
    • Oracle PeopleSoft
    • Oracle WebLogic Server
    • PostgreSQL
    • Red Hat OpenShift
    • Redis
    • SAP Gateway
    • SAP HANA
    • SAP HANA Studio
    • SAP IQ
    • ‫SAP NetWeaver ABAP
    • ‫SAP NetWeaver ASCS
    • ‫SAP NetWeaver Enqueue Replicator
    • ‫SAP NetWeaver Java
    • SAP Web Dispatcher
    • SUSE Pacemaker

כדי להשבית את איסוף הטלמטריה, צריך להגדיר את מפתח המטא-נתונים disable-guest-telemetry לערך true. במאמר הגדרת מטא-נתונים מותאמים אישית והסרתם מוסבר איך מגדירים מטא-נתונים.

סנכרון השעון (ב-Linux בלבד)

כדי להבטיח תזמון מדויק, סוכן האורח משתמש ברכיב clock_skew_daemon כדי לתקן מדי פעם את השעון במופע כך שיתאים לשרת הפיזי שהוא פועל בו. התהליך הזה מונע בעיה שנקראת הטיה בשעון, ויוצר הודעה מסוג system time has changed ביומני המופעים, שמאשרת שהשעה סונכרנה בהצלחה.

אם האפשרות הזו מופעלת, הסוכן מסנכרן את השעון בדרך כלל אחרי אירוע עצירה או התחלה, או אחרי העברה. עם זאת, אם השעון בזמן אמת (RTC) במופע שלכם מוגדר להשתמש באזור הזמן המקומי במקום ב-UTC, הסוכן מזהה את ההגדרה הזו באופן אוטומטי ומשבית את סנכרון השעון כדי למנוע חוסר עקביות פוטנציאלי.

הסוכן מבצע את הסנכרון מחדש על ידי הרצת הפקודה הבאה: /sbin/hwclock --hctosys -u --noadjfile.

כדי להשבית את הרכיב clock_skew_daemon, צריך להגדיר את clock_skew_daemon = false בקובץ ההגדרות של סוכן האורח.

ביצוע סקריפט של מטא-נתונים

אתם יכולים להשתמש בסקריפטים לטעינה בזמן ההפעלה ובסקריפטים לסגירה כדי לבצע משימות אוטומטיות בכל פעם שהמופע מופעל או מושבת.

הסוכן האורח עוזר בהרצת הסקריפטים האלה באופן הבא:

  • מריץ סקריפטים במעטפת.
  • אם מציינים כמה סקריפטים (לדוגמה, אם משתמשים גם ב-startup-script וגם ב-startup-script-url), הסוכן מריץ את שניהם.
  • אם מספקים כמה סקריפטים לאותו אירוע, הסוכן מריץ קודם את הסקריפט מכתובת ה-URL.
  • אחרי שסקריפט מסתיים, הסוכן מתעד את סטטוס היציאה שלו.

אפשר להגדיר את ההפעלה של סקריפטים של מטא-נתונים על ידי שינוי האפשרויות MetadataScripts בקובץ ההגדרות של סוכן האורח.

ניהול חשבונות משתמשים ומפתחות SSH

הסוכן האורח משתמש ב-accounts_daemon כדי לנהל חשבונות משתמשים מקומיים ומפתחות SSH, ששולטים בגישה למופע. ההתנהגות הספציפית משתנה בין מערכות הפעלה של Linux ו-Windows.

אפשר לשנות את אפשרויות ניהול החשבונות על ידי הגדרת האפשרויות Accounts בקובץ ההגדרות של סוכן האורח.

Linux

שירות OS Login משמש לניהול גישת SSH למכונות באמצעות IAM, בלי שתצטרכו ליצור ולנהל מפתחות SSH נפרדים. מידע נוסף על OS Login זמין במאמר OS Login. במופעי Linux, אם OS Login לא מופעל, הסוכן יוצר ומנהל חשבונות משתמשים מקומיים ואת מפתחות ה-SSH שלהם באמצעות הגדרות מטא-נתונים.

כשמוסיפים או מסירים מפתחות SSH ממטא-נתונים של מכונה או פרויקט, סוכן האורח יוצר או מוחק חשבון משתמש מקומי. הסוכן האורח גם מבצע את הפעולות הבאות כדי לנהל את חשבונות המשתמשים המקומיים האלה:

  • הכלי שומר את קובץ authorized_keys לכל חשבון משתמש שהוא מנהל באופן הבא:
    • כשמוסיפים מפתחות SSH למטא-נתונים, הסוכן יוצר קובץ authorized_keys עבור חשבון המשתמש.
    • כשמסירים את כל מפתחות ה-SSH של משתמש ממטא-נתונים, הסוכן מוחק את הקובץ authorized_keys של חשבון המשתמש הזה.
  • ניהול הרשאות אדמין באמצעות קבוצת Linux‏ google-sudoers. כל חבר בקבוצה הזו מקבל הרשאות sudo במופע.
  • כל חשבונות המשתמשים שהוא מקצה מתווספים לקבוצה google-sudoers.
  • הוספת חשבונות משתמשים לכל קבוצות Linux נוספות שצוינו באפשרות groups של קובץ ההגדרות של סוכן האורח.

Windows

במכונות Windows, הסוכן יוצר באופן אוטומטי חשבונות משתמשים מקומיים לכל חשבון משתמש SSH שצוין במטא-נתונים של מפתחות ה-SSH ברמת המכונה או הפרויקט. הסוכן האורח גם מטפל ביצירת חשבונות משתמשים ובהגדרת סיסמאות או באיפוס שלהן. חשבונות המשתמשים המקומיים האלה נדרשים כדי להתחבר למופעי Windows באמצעות SSH.

כדי למנוע הקצאת משתמשים לא מכוונת ב-AD, אפשר להשבית את מנהל החשבונות במופע של בקר AD. מידע נוסף על הגדרת AD ב-Compute Engine זמין במאמר בנושא פריסת בקרי דומיין.

הגדרת OS Login (ל-Linux בלבד)

שירות OS Login משמש לניהול גישת SSH למכונות באמצעות IAM, בלי שתצטרכו ליצור ולנהל מפתחות SSH נפרדים. מידע נוסף על OS Login זמין במסמכי התיעוד של OS Login.

כשמפעילים את OS Login, סוכן האורח אחראי להגדרת המכונה לשימוש ב-OS Login.

הסוכן האורח מגדיר את OS Login על ידי ביצוע המשימות הבאות:

  • מוסיף בלוק הגדרות של Google לקובץ ההגדרות SSHD ומפעיל מחדש את SSHD.
  • מוסיף רשומות של OS Login לקובץ nsswitch.conf.
  • מוסיף רשומות של OS Login לקובץ ההגדרות PAM של SSHD.

אם משביתים את OS Login, השינויים בהגדרות מוסרים. האפשרויות בקטע Accounts של קובץ ההגדרות SSHD לא חלות על משתמשים ב-OS Login.

ניהול רשתות

סוכן האורח מגדיר אוטומטית את ממשקי הרשת של המופע בזמן האתחול. הוא קורא את הגדרת הרשת משרת המטא-נתונים כדי לוודא שהמופע מתחבר לרשת בצורה נכונה ויכול לגשת לשירותים אחרים של Google Cloud.

אפשר לקבוע את אופן ההתנהגות של ניהול הרשת של הסוכן על ידי הגדרת האפשרויות NetworkInterfaces בקובץ התצורה של סוכן האורח. לדוגמה, אפשר להגדיר את האפשרות manage_primary_nic = true כדי שהסוכן ינהל את כרטיס הרשת (NIC) הראשי בנוסף לכרטיסי NIC משניים.

בכל אתחול, סוכן האורח מבצע את המשימות העיקריות הבאות:

  • הפעלת ממשקי רשת: הסוכן מזהה את מנהל הרשת הפעיל במערכת ההפעלה ומשתמש בו כדי להפעיל את כל כרטיסי הרשת המשניים.
  • הגדרת נתיבי IP: הסוכן מגדיר את נתיבי ה-IP (IPv4 בלבד) הנדרשים לתכונות כמו העברת IP וטווחי IP של כינויים באופן הבא:
    • הגדרת מסלולים בממשק ה-Ethernet הראשי.
    • הגדרת מסלולי Google כברירת מחדל, עם מזהה פרוטוקול הניתוב 66. המזהה הזה הוא מרחב שמות לכתובות IP שהוגדרו לסוכן האורח. אפשר לשנות את המזהה הזה באמצעות האפשרות ethernet_proto_id בקובץ התצורה של סוכן האורח.
  • יצירת נתיב לשרת המטא-נתונים: הסוכן מוודא שכרטיס ה-NIC הראשי יכול תמיד לתקשר עם שרת המטא-נתונים כדי לקבל מידע על המופע.
  • הגדרת VLAN: אם המכונה שלכם מוגדרת להתחבר לרשת מקומית וירטואלית (VLAN), סוכן האורח מטפל בהגדרה באופן אוטומטי. הוא קורא את הגדרת ה-VLAN משרת המטא-נתונים ומגדיר את ממשק הרשת בתוך המכונה כך שישתמש בתג ה-VLAN הנכון. כך אפשר לוודא שהמופע מתקשר ברשת הלוגית המיועדת. חשוב לדעת: אם ה-VLAN מצורף ל-NIC הראשי, סוכן האורח מגדיר אותו גם אם manage_primary_nic מושבת.

בחירת כלי לניהול רשתות

ב-Linux, סוכן האורח מזהה באופן אוטומטי את מנהל הרשת שזמין במערכת ומשתמש בו כדי להגדיר את ממשקי הרשת. הסוכן בודק אם יש מנהלים נתמכים לפי סדר העדיפות, מ-netplan עד dhclient.

בטבלה הבאה מפורטים מנהלי הרשת הנתמכים, לפי מערכת ההפעלה שהם משויכים אליה בדרך כלל כברירת מחדל. ההגדרה הספציפית של המופע שלכם יכולה להיות שונה, אבל הטבלה הזו משקפת את מנהל הרשת שמוגדר כברירת מחדל למערכות ההפעלה שמופיעות בה.

ניהול רשתות מערכת הפעלה מיקום ההגדרה נתיב לדוגמה הערות
netplan
  • ‫Debian 12 ואילך
  • ‫Ubuntu 20.04 ואילך
/run/netplan/ /run/netplan/20-google-guest-agent-eth0.yaml יכול להיות שהנציג ישתמש גם במיקום לא מתוכנן בכתובת /etc/systemd/network/
wicked
  • SLES
/etc/sysconfig/network/ /etc/sysconfig/network/ifcfg-eth0 קבצים קיימים בפורמט ifcfg לא יוחלפו, אלא ידלגו עליהם.
NetworkManager
  • CentOS
  • RHEL
  • Rocky Linux
/etc/NetworkManager/system-connections/ /etc/NetworkManager/system-connections/google-guest-agent-eth0.nmconnection
systemd-networkd
  • ‫Debian
/usr/lib/systemd/network/ /usr/lib/systemd/network/20-eth0-google-guest-agent.network
dhclient
  • ‫Debian 11 או גרסאות קודמות
  • ‫Ubuntu 18.04 או גרסה מוקדמת יותר
/run/ /run/dhclient.google-guest-agent.eth0.ipv4.pid אם לא מזוהים מנהלי רשת אחרים, סוכן האורח משתמש כברירת מחדל ב-dhclient.

ניהול מאובטח של פרטי כניסה לשרת מטא-נתונים (MDS)

מכונות וירטואליות מוגנות תומכות עכשיו בתקשורת מאובטחת עם שרת המטא-נתונים באמצעות נקודת הקצה של HTTPS‏ https://metadata.google.internal/computeMetadata/v1. השיפור הזה מספק ערוץ מאובטח יותר לגישה למטא-נתונים.

כדי להפעיל את התקשורת המאובטחת הזו, סוכן האורח מאחזר ומאחסן את פרטי הכניסה הדרושים בדיסק של המופע. פרטי הכניסה האלה נשמרים במיקום סטנדרטי, כך שכל אפליקציית לקוח שפועלת במופע יכולה לגשת אליהם. כדי לבדוק את המיקומים האלה, אפשר לעיין במאמר איפה מאוחסנים האישורים.

אישורי HTTPS MDS מופעלים כברירת מחדל החל מגרסה 20260228.00 של סוכן האורח. בגרסאות קודמות של סוכן האורח, כדי להגדיר באופן אוטומטי אישורי HTTPS MDS במכונות וירטואליות מוגנות, צריך להגדיר את מפתח המטא-נתונים disable-https-mds-setup לערך false במופע או בפרויקט. במאמר הגדרת מטא-נתונים מותאמים אישית והסרתם מוסבר איך מגדירים מטא-נתונים.

ניהול פרטי הכניסה על ידי סוכן האורח כולל:

  • עדכון ראשוני: גם אישור הבסיס וגם פרטי הכניסה של הלקוח מתעדכנים בכל פעם שתהליך הסוכן של האורח מתחיל.
  • רענון אוטומטי: כדי לשפר את האבטחה, סוכן האורח מרענן באופן אוטומטי את פרטי הכניסה של הלקוח כל 48 שעות.
  • תקופת חפיפה: הסוכן יוצר ושומר פרטי כניסה חדשים בזמן שפרטי הכניסה הישנים עדיין תקפים. תקופת החפיפה מבטיחה שללקוחות יהיה מספיק זמן לעבור לפרטי הכניסה החדשים לפני שתוקף פרטי הכניסה הישנים יפוג. במהלך התקופה החופפת הזו, הסוכן יכול גם לנסות שוב להשיג אישורים במקרה של כשל, כדי לוודא שיש אישורים תקפים לפני שהאישורים הקיימים הופכים ללא תקפים.
  • הרכב: סוכן האורח מוודא שפרטי הכניסה של הלקוח מורכבים ממפתח פרטי של EC (עקומה אליפטית) שמשורשר לאישור הלקוח.
  • ייחודיות: סוכן האורח מוודא שפרטי הכניסה ייחודיים למופע ולא ניתן להשתמש בהם במקום אחר.

מידע נוסף על נקודת הקצה של שרת המטא-נתונים של HTTPS זמין במאמר מידע על נקודת הקצה של שרת המטא-נתונים של HTTPS.

כברירת מחדל, סוכן האורחים כותב את האישורים ישירות לדיסק. עם זאת, אפשר להגדיר את הסוכן כך שישלב אישורים במאגרי האישורים המובנים של מערכת ההפעלה. כדי להפעיל את השילוב הזה, מגדירים את מפתח המטא-נתונים enable-https-mds-native-cert-store לערך true. במאמר הגדרת מטא-נתונים מותאמים אישית והסרתם מוסבר איך מגדירים מטא-נתונים.

ההתנהגות של הסוכן לגבי הוספת אישורים למאגרי אישורים של מערכת ההפעלה משתנה בהתאם למערכת ההפעלה, באופן הבא:

Linux

הסוכן של האורח מבצע את השלבים הבאים:

  1. הוספת אישור הבסיס של MDS למאגר האישורים של המערכת. הנתיב הספציפי תלוי בהפצת מערכת ההפעלה. מידע נוסף על המיקומים האלה זמין במאמר בנושא אחסון של אישורי בסיס במאגר האישורים של מערכת ההפעלה.
  2. מעדכנים את מאגר האישורים המקומי על ידי הפעלת הפקודה המתאימה למערכת ההפעלה, כמו update-ca-certificates או update-ca-trust.

Windows

הסוכן מוסיף את פרטי הכניסה של הלקוח אל Cert:\LocalMachine\My ואת אישור הבסיס אל Cert:\LocalMachine\Root.

תמיכה באשכולות מעבר לגיבוי בעת כשל ב-Windows (Windows בלבד)

הסוכן של האורח עוקב אחרי הצומת הפעיל בWindows Server Failover Cluster ומתאם עם מאזן העומסים הפנימי Google Cloud כדי להעביר את כל התנועה של האשכול לצומת הצפוי.

כדי לשלוט בהתנהגות הזו, אפשר להשתמש בשדות הבאים במטא-נתונים של המופע או בקובץ instance_configs.cfg:

  • enable-wsfc: כשהערך מוגדר ל-true, הסוכן מתעלם מכל המידע על העברת כתובות IP ומתחיל להגיב ליציאה של בדיקת תקינות. ערך ברירת המחדל הוא false.
  • wsfc-agent-port: מציין את היציאה שבה הסוכן מגיב לבדיקות תקינות. ערך ברירת המחדל הוא 59998.
  • wsfc-addrs: רשימה מופרדת בפסיקים של כתובות IP. ההגדרה המתקדמת הזו מאפשרת להשתמש בכתובות IP רגילות להעברה ובכתובות IP של אשכול באותו מופע. כשמגדירים את זה, הסוכן מדלג על הגדרה אוטומטית רק עבור כתובות ה-IP ברשימה הזו. כברירת מחדל, הערך הזה לא מוגדר.

המאמרים הבאים