關於訪客代理程式


本文將概略介紹客體代理程式架構。客體代理程式是客體環境的重要元件。訪客環境包含執行個體在 Compute Engine 上執行時所需的指令碼、Daemon 和二進位檔。詳情請參閱「訪客環境」。

客體代理程式會設定服務,並定義快照指令碼執行、Windows 容錯移轉、OS 登入和以中繼資料為基礎的 SSH 驗證等功能的最低設定。如要進一步瞭解訪客代理程式的核心功能,請參閱「訪客代理程式功能」。

客體代理程式架構

20250901.00 版開始,客體代理程式架構會從單體式設計更新為現代化的外掛程式型系統。這項演進可提升彈性、可靠性和擴充性。

  • 單體式架構:早於 20250901.00 的客體代理程式採用單一整合式程序,以中繼資料伺服器對執行個體的描述為中心。中繼資料伺服器是每個執行個體專屬的 HTTP 伺服器,會與每個 Compute Engine 執行個體一併執行。如要進一步瞭解中繼資料伺服器,請參閱「VM 中繼資料」。

    訪客代理程式會對中繼資料伺服器進行長時間輪詢,並根據狀態變化採取行動。採用這種架構後,代理程式的狀態會在所有工作 (例如 SSH 和網路設定) 之間共用。這種單體式方法缺乏介面和元件隔離功能。代理程式某個領域的變更或功能導入作業,會同時影響整個系統。這種模式會讓新增功能和測試涵蓋範圍變得困難。

  • 以外掛程式為基礎的架構:從 20250901.00 版開始,客體代理程式會分成由中央管理工具管理的獨立外掛程式。每個外掛程式都可以與中繼資料伺服器互動,並根據中央管理員的指示進行必要變更。這種模組化方法可確保某個外掛程式當機時,不會影響核心代理程式或其他外掛程式。

以外掛程式為基礎的架構

這個架構是以中央管理員為中心建構,可控制各種外掛程式,並將核心功能與選用的服務專屬外掛程式分開。

重要元件

下圖顯示客體代理程式的主要元件及其互動方式。

中央客體代理程式管理員會控管核心外掛程式和選用外掛程式。
    訪客代理程式管理員會與 Google 後端的代理程式控制層通訊,管理選用外掛程式。
圖 1:訪客代理程式架構
  • 核心外掛程式:這個外掛程式會封裝原始客體代理程式的功能。這個代理程式會執行執行個體在 Google Cloud上運作所需的基本工作。包括以下工作:

    • 網路設定:設定主要網路介面,以啟用通訊。
    • SSH 存取權:管理使用者 SSH 金鑰,允許安全連線至執行個體。
    • 中繼資料存取權:提供執行個體存取執行個體和專案中繼資料的路徑。

    您無法停用核心外掛程式。

    如要進一步瞭解訪客代理程式的核心功能,請參閱「訪客代理程式功能」。

  • 選用外掛程式:您可以佈建這些外掛程式,與其他Google Cloud 服務整合,執行下列工作:

    • 監控和記錄:啟用作業套件代理程式外掛程式,收集 Cloud Monitoring 的指標和記錄。
    • 工作負載管理:啟用 Workload Manager 外掛程式,從工作負載收集設定和執行階段資訊以供分析。
    • 工作負載最佳化:啟用 SAP Agent 外掛程式,支援在 Google Cloud上執行的 SAP 工作負載。

    您可以視需要啟用或停用選用外掛程式。

  • 代理程式控制層:這項代管型 Google Cloud 服務會在 Google 的後端基礎架構上執行。控制層會與執行個體上的訪客代理程式管理員通訊,管理選用外掛程式的生命週期,包括安裝、更新和設定。

  • 訪客代理程式管理員:這個中央程序會啟動、停止及監控所有外掛程式的狀態。訪客代理程式管理員可促進核心外掛程式與代理程式控制層之間的通訊。選用外掛程式的生命週期管理包括:

    • 安裝和更新:訪客代理程式管理員會根據代理程式控制平面的指令,安裝、啟動、停止及設定選用外掛程式。
    • 健康狀態監控:客體代理程式管理員會監控選用外掛程式的健康狀態和狀態,包括 CPU 和記憶體用量,並將這項資訊回報給代理程式控制平面。
    • 政策管理:使用 Compute Engine API 建立政策,控管選用外掛程式的安裝和版本管理。

優點

與單體式設計相比,外掛程式型架構具有下列優點:包括:

  • 外掛程式隔離:每個外掛程式都會在獨立程序中執行,因此即使某個外掛程式當機,也不會影響核心代理程式或其他外掛程式。
  • 資源保護:客體代理程式會使用作業系統層級的功能,對外掛程式強制執行資源限制,避免任何單一外掛程式耗用過多 CPU 或記憶體。
  • 自動從當機狀態復原:系統會停止並重新啟動外掛程式,自動從外掛程式當機狀態復原。
  • 選擇性啟用:您可以停用不需要的選用外掛程式,確保執行個體安全無虞或進行最佳化。
  • 減少選用外掛程式的負擔:訪客代理程式管理員會自動處理選用外掛程式的安裝和更新作業,減少手動更新外掛程式所需的人力。

訪客代理程式二進位檔的位置

下表列出 Linux 和 Windows 執行個體上不同客體代理程式二進位檔的檔案路徑 (視架構而定)。

以外掛程式為基礎的代理程式二進位檔

下表列出 Linux 和 Windows 執行個體上,以外掛程式為基礎的訪客代理程式二進位檔檔案路徑:

元件 Linux 上的路徑 Windows 路徑
訪客代理程式管理員 /usr/bin/google_guest_agent_manager C:\ProgramData\Google\Compute Engine\google-guest-agent
核心外掛程式二進位檔 /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\google_guest_agent.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

回溯相容性

為確保從先前的單一訪客代理程式順利轉換至外掛程式型系統,訪客代理程式套件包含多個專為回溯相容性設計的元件。這些元件不屬於外掛程式架構,只有在您手動選擇將中繼資料屬性 enable-guest-agent-core-plugin 設為 false,還原為單一代理程式時才會啟用。

支援這項相容性的元件包括:

  • 訪客代理程式相容性管理工具:這個套件可管理外掛程式型代理程式和單一代理程式之間的切換。
  • 中繼資料指令碼執行器相容性管理工具:這個套件可確保系統使用正確的指令碼執行器,具體取決於單一或外掛程式型代理程式是否處於啟用狀態。
  • 授權金鑰相容性管理工具 (僅限 Windows):這個套件會處理 SSH 金鑰,確保舊版或新版代理程式使用正確的金鑰。
元件 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

後續步驟