本文將概略說明訪客代理程式架構。客體代理程式是客體環境的重要元件。客體環境包含執行個體在 Compute Engine 上執行時所需的指令碼、常駐程式和二進位檔。詳情請參閱「訪客環境」。
客體代理程式會設定服務,並定義快照指令碼執行、Windows 容錯移轉、OS 登入和中繼資料型 SSH 驗證等功能的最低設定。如要進一步瞭解訪客代理程式的核心功能,請參閱「訪客代理程式功能」。
訪客代理程式架構
從 20250901.00 版本開始,訪客代理程式架構已從單體式設計更新為現代化的外掛程式系統。這項演進可提升彈性、可靠性和擴充性。
單體式架構:早於
20250901.00的客體代理程式採用單一統合程序,以中繼資料伺服器對執行個體的說明為中心。中繼資料伺服器是每個執行個體專屬的 HTTP 伺服器,會與每個 Compute Engine 執行個體一併執行。如要進一步瞭解中繼資料伺服器,請參閱「VM 中繼資料」。訪客代理程式會長時間輪詢中繼資料伺服器,並根據狀態變更採取行動。採用這種架構後,代理程式的狀態會在所有工作 (例如 SSH 和網路設定) 之間共用。這種單體式方法缺乏介面和元件隔離功能,代理程式某個領域的變更或功能導入,會同時影響整個系統。這種模式會導致功能新增和測試涵蓋範圍變得困難。
以外掛程式為基礎的架構:從
20250901.00版開始,客體代理程式會分成由中央管理工具管理的獨立外掛程式。每個外掛程式都能與中繼資料伺服器互動,並根據中央管理員的指示進行必要變更。這種模組化做法可確保單一外掛程式當機時,不會影響核心代理程式或其他外掛程式。
以外掛程式為基礎的架構
這項架構以中央管理員為核心,可控制各種外掛程式,並將核心功能與選用的服務專屬外掛程式 (稱為擴充功能) 分開。
重要元件
下圖顯示客體代理程式的主要元件及其互動。
核心外掛程式:這個外掛程式會封裝原始客體代理程式的功能。這項服務會執行執行個體在 Google Cloud上運作所需的必要工作。包括:
- 網路設定:設定主要網路介面,以啟用通訊功能。
- SSH 存取權:管理使用者安全殼層金鑰,允許安全連線至執行個體。
- 中繼資料存取權:提供執行個體存取執行個體和專案中繼資料的路徑。
您無法停用核心外掛程式。
如要進一步瞭解訪客代理程式的核心功能,請參閱「訪客代理程式功能」。
擴充功能 (選用外掛程式):您可以佈建這些擴充功能,與其他Google Cloud 服務整合,執行下列工作:
- 監控和記錄:啟用 Ops Agent,收集 Cloud Monitoring 的指標和記錄。詳情請參閱「使用 VM 擴充功能管理工具政策安裝及管理 Ops Agent」。
- Workload Manager:啟用運算工作負載代理,從工作負載收集設定和執行階段資訊,以便進行分析。詳情請參閱「運算工作負載代理程式總覽」。
- 工作負載最佳化:啟用 Agent for SAP,支援在 Google Cloud上執行的 SAP 工作負載。詳情請參閱「在 VM 機群中安裝及管理 Agent for SAP」。
如要進一步瞭解如何安裝及管理這些擴充功能,請參閱「VM 擴充功能管理工具」。
VM 擴充功能管理工具:這項代管 Google Cloud 服務會在 Google 的後端基礎架構上執行。VM 擴充功能管理工具會與執行個體上的訪客代理程式管理工具通訊,藉此管理擴充功能的生命週期,包括安裝、更新和設定。
訪客代理管理員:這個中央程序會啟動、停止及監控所有外掛程式的狀態。訪客代理程式管理工具可促進核心外掛程式與 VM 擴充功能管理工具之間的通訊。擴充功能的生命週期管理包括:
- 安裝和更新:訪客代理程式管理員會根據 VM 擴充功能管理工具的指示,安裝、啟動、停止及設定擴充功能。
- 健康狀態監控:訪客代理程式管理工具會監控擴充功能的健康狀態和狀態,包括 CPU 和記憶體用量,並將這項資訊回報給 VM 擴充功能管理工具。
- 政策管理:使用 Compute Engine API 建立政策,控管擴充功能的安裝和版本。
優點
與單體式設計相比,外掛程式架構有幾項優點。包括:
- 外掛程式隔離:每個外掛程式都會在獨立程序中執行,因此一個外掛程式當機不會影響核心代理程式或其他外掛程式。
- 資源保護:訪客代理程式會使用 OS 層級功能,強制執行外掛程式的資源限制,防止任何單一外掛程式耗用過多 CPU 或記憶體。
- 自動復原當機:系統會停止並重新啟動外掛程式,自動從外掛程式當機狀態復原。
- 選擇性啟用:您可以停用不需要的擴充功能,確保執行個體安全無虞或進行最佳化。
- 減少擴充功能負擔:訪客代理程式管理員會自動處理擴充功能的安裝和更新作業,減少手動更新擴充功能所需的工作。
API 端點
訪客代理程式會與多個 Google API 和端點通訊,如果您有特定防火牆規則,或使用 VPC Service Controls 並依賴使用該規則的代理程式功能,請確保執行個體可以連上對應的端點:
- 中繼資料伺服器 (
metadata.google.internal):訪客代理程式會依賴中繼資料伺服器擷取執行個體和專案中繼資料 (例如安全殼層金鑰和網路設定),以設定執行個體。詳情請參閱「核心功能」和「中繼資料伺服器端點」。 - Cloud Storage (
storage.googleapis.com):如果執行個體中繼資料提供指向 Cloud Storage 值區的網址,客體代理程式可能會從 Cloud Storage 下載中繼資料指令碼。詳情請參閱 Cloud Storage 說明文件中的「中繼資料指令碼執行」和「要求端點」。 - VM 擴充功能管理員 (
*.agentcommunication.googleapis.com):客體代理程式管理員會與代理程式通訊服務 (ACS) 通訊,管理擴充功能的生命週期並回報指標。詳情請參閱「VM 擴充功能管理工具」。 - Cloud Logging (
logging.googleapis.com):根據預設,客體代理程式會啟用 Cloud Logging 來記錄記錄檔。詳情請參閱「Cloud Logging API 總覽」。
如需完整的區域端點清單,請參閱「區域服務端點」。
訪客代理程式二進位檔的位置
下表列出 Linux 和 Windows 執行個體上不同客體代理程式二進位檔的檔案路徑 (視架構而定)。
以外掛程式為基礎的代理程式二進位檔
下表列出 Linux 和 Windows 執行個體上,以外掛程式為基礎的訪客代理程式二進位檔檔案路徑:
| 元件 | Linux 上的路徑 | Windows 上的路徑 |
|---|---|---|
| 訪客代理程式管理員 | /usr/bin/google_guest_agent_manager |
C:\ProgramData\Google\Compute Engine\agent\GCEWindowsAgentManager.exe |
| 核心外掛程式二進位檔 | /usr/lib/google/guest_agent/core_plugin |
C:\Program Files\Google\Compute Engine\agent\CorePlugin.exe |
| 中繼資料指令碼執行器 | /usr/bin/gce_metadata_script_runner |
C:\Program Files\Google\Compute Engine\agent\GCEMetadataScriptRunner.exe |
單體代理二進位檔
下表列出 Linux 和 Windows 執行個體上單體客體代理程式二進位檔的檔案路徑:
| 元件 | Linux 上的路徑 | Windows 路徑 |
|---|---|---|
| 訪客代理 | /usr/bin/google_guest_agent |
C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgent.exe |
| 中繼資料指令碼執行器 | /usr/bin/google_metadata_script_runner |
C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe |
| 授權金鑰 | 不適用 | C:\Program Files\Google\Compute Engine\agent\GCEAuthorizedKeys.exe |
訪客代理程式 Daemon 服務
下表列出安裝在 Linux 和 Windows 執行個體上的客體代理程式精靈服務。這些服務會在 Linux 上以 systemd 單位執行,在 Windows 上則以 Windows 服務執行。
| 元件 | Linux 上的服務名稱 | Windows 上的服務名稱 | 狀態 |
|---|---|---|---|
| 訪客代理程式管理員 | google-guest-agent-manager.service |
GCEAgentManager |
適用於所有模式,包括 回溯相容性。 |
| 訪客代理 | google-guest-agent.service |
GCEAgent |
預設為停用。 僅在回溯相容模式下啟用。 |
| 訪客代理程式相容性管理工具 | google-guest-compat-manager.service |
GCEWindowsCompatManager |
適用於所有模式,包括 回溯相容性。 |
| 工作負載憑證更新 | gce-workload-cert-refresh.timer |
N/A |
預設為停用。 僅在 回溯相容模式下啟用。 |
| 開機指令碼 | google-startup-scripts.service |
GCEStartup |
|
| 關機指令碼 | google-shutdown-scripts.service |
Shutdown |
回溯相容性
為確保從先前的單體訪客代理程式順利轉換至外掛程式型系統,訪客代理程式套件包含多個專為回溯相容性設計的元件。這些元件不屬於外掛程式架構,只有在您手動選擇將中繼資料屬性 enable-guest-agent-core-plugin 設為 false,還原為單一代理程式時才會啟用。
支援這項相容性的元件包括:
- 訪客代理相容性管理工具:這個套件可管理外掛程式型代理和單一代理之間的切換。
- 中繼資料指令碼執行器相容性管理工具:這個套件可確保系統根據單一或外掛程式型代理程式是否處於啟用狀態,使用正確的指令碼執行器。
- 授權金鑰相容性管理工具 (僅限 Windows):這個套件會處理安全殼層金鑰,確保新舊代理程式使用正確的金鑰。
| 元件 | Linux 上的路徑 | Windows 路徑 |
|---|---|---|
| 訪客代理程式相容性管理工具 | /usr/bin/google_guest_compat_manager |
C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe |
| 中繼資料指令碼執行工具相容性管理工具 | /usr/bin/metadata_script_runner_compat |
C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe |
| 授權金鑰相容性管理工具 | 不適用 | C:\Program Files\Google\Compute Engine\agent\GCEWindowsAuthorizedKeysCompat.exe |
後續步驟
- 如要進一步瞭解核心外掛程式函式,請參閱「訪客代理程式功能」