訪客環境

本文概要說明訪客環境,其中包含執行個體在 Compute Engine 上執行時所需的指令碼、Daemon 和二進位檔。

訪客環境會與中繼資料伺服器通訊,這個伺服器是與每個 Compute Engine 執行個體一併執行的執行個體專屬 HTTP 伺服器。中繼資料伺服器會為執行個體提供必要的設定和作業資料。如要進一步瞭解中繼資料伺服器儲存的中繼資料類型,請參閱「VM 中繼資料」。

使用 Google 提供的多數公開作業系統 (OS) 映像檔建立 Compute Engine 執行個體時,系統會自動安裝訪客環境。每個 OS 映像檔都需要特定的訪客環境套件。這些套件是由 Google 或作業系統發行商建構。訪客環境套件更新會依區域推出。這些更新最多可能需要兩週,才會在全球所有地點生效。詳情請參閱「訪客環境套件存放區推出」。

如需包含客體環境的 OS 映像檔完整清單,請參閱「作業系統詳細資料」。

訪客環境元件

下節說明可讓執行個體與 Compute Engine 通訊的套件和服務。

訪客代理程式

訪客環境的中央元件是訪客代理程式,可處理帳戶管理、OS 登入整合和網路介面管理等工作。訪客代理程式適用於 Linux 和 Windows 作業系統,套件名稱如下:

  • Linux:google-guest-agent
  • Windows:google-compute-engine-windows

如要進一步瞭解客體代理程式,包括其功能、架構和管理方式,請參閱「客體代理程式」。

Linux 元件

Linux 訪客環境的基本元件是 debrpm 套件。Compute Engine 會為支援的發行版本建立這些套件,並採用適當的設定。如要查看 Linux 執行個體上已安裝的套件清單,請連線至執行個體,然後在「依作業系統版本列出的已安裝套件」表格中,執行適用於您 OS 版本的指令。

Linux 訪客環境包含下列重要套件。

套件名稱 說明 主要互動 GitHub 上的原始碼連結
google-guest-agent

這個套件是 Linux 環境的訪客代理程式。

Linux 訪客代理程式包含在訪客 OS 上執行的指令碼,可支援 Compute Engine 功能。如要進一步瞭解客體代理程式,包括其功能、架構和管理方式,請參閱「客體代理程式」。

guest-agent
google-compute-engine

包含系統初始化和設定所需的指令碼和檔案。

這個套件包含下列項目:

  • systemd 的系統初始化指令碼
  • 系統設定,例如用來設定主機名稱的 udev 規則、sysctl 規則、rsyslog 設定和 dhcp 設定。
  • 在執行個體啟動期間執行的 Bash 指令碼
  • gce-resolved.conf 檔案 (2024 年 10 月推出),可確保 .local Cloud DNS 網域的網域查詢會轉送至中繼資料伺服器。如果沒有這個檔案,網域查詢會透過 systemd-resolved 傳送,但經常會失敗。

    如果您的環境未使用 .local 網域,可以移除 gce-resolved.conf 檔案,以免與現有設定衝突。

與下列套件搭配使用,可設定例項。
  • google-guest-agent
  • google-compute-engine-oslogin
guest-configs
google-compute-engine-oslogin 包含管理執行個體存取權所需的二進位檔、模組和指令碼,並使用 OS 登入。OS 登入功能可讓您使用 IAM 角色管理執行個體的存取權。如要進一步瞭解 OS 登入,請參閱這篇文章

這個套件包含下列項目:

  • 授權金鑰指令: 這個指令會使用安全殼層公開金鑰,在使用者登入時進行驗證。
  • 名稱服務切換 (NSS) 模組: 這項服務會向系統提供 OS 登入使用者和群組資訊。
  • 可插式驗證模組 (PAM): 提供授權 (如已啟用雙因素支援,則也提供驗證) 支援的模組。這個模組可讓系統使用 Cloud de Confiance by S3NSIAM 權限,控管系統是否能登入執行個體,或以根使用者身分執行作業 (使用 sudo)。
  • google_oslogin_nss_cache:用於更新本機使用者和群組快取的公用程式。
  • selinux: 這個套件包含 SELinux 政策定義檔案,以及用於設定 SELinux 以支援 OS 登入的已編譯政策套件。
guest-oslogin
gce-disk-expand 包含調整開機磁碟大小所需的元件。 將記錄傳送至序列埠 gce-disk-expand
google-osconfig-agent 內含 OS 設定代理程式,VM 管理員會使用這個代理程式管理 OS 庫存、修補程式和政策。如要進一步瞭解 OS 設定代理程式,請參閱「VM 管理員」。

VM 中繼資料讀取及寫入資料

根據預設,您必須啟用 OS Config 代理程式,代理程式才會收集或傳送任何資訊。啟用代理程式後,代理程式會與 OS 設定 API 服務通訊。如要查看代理程式完成的作業,請參閱「VM 管理員稽核記錄」。

guest-osconfig

Windows 元件

所有 Google 提供的 Windows OS 映像檔都預先設定了 GooGet 工具和 Cloud de Confiance 存放區。GooGet 會安裝及維護 Windows 執行個體的訪客環境。如需安裝 GooGet 及設定存放區,請參閱 compute-image-windows GitHub 存放區中的「封裝及套件發布」。如要查看 Windows 執行個體上已安裝的套件清單,請連線至執行個體並執行 googet installed

Windows 訪客環境包含下列重要套件:

套件名稱 說明 主要互動 GitHub 上的原始碼連結
google-compute-engine-windows

這個套件是 Windows 環境的訪客代理程式。

Windows 訪客代理程式包含在訪客 OS 上執行的指令碼,可支援 Compute Engine 功能。如要進一步瞭解客體代理程式,包括其功能、架構和管理方式,請參閱「客體代理程式」。

guest-agent
google-compute-engine-sysprep 內含用於一般化 Windows 執行個體的指令碼,以便建立 OS 映像檔。這個套件也包含 instance_setup.ps1 指令碼,會在首次啟動時執行,以設定新執行個體。
  • VM 中繼資料讀取及寫入資料
  • 將記錄傳送至 Windows 應用程式事件記錄檔和序列埠
sysprep
google-compute-engine-metadata-scripts

包含執行 sysprep-specializestartupshutdown 指令碼的指令碼和二進位檔。

  • VM 中繼資料讀取及寫入資料
  • 使用 sysprep-specialize-script-urlwindows-startup-script-url 時,從 Cloud Storage 位置讀取資料
  • 將記錄檔傳送至 Windows 應用程式事件記錄檔、序列埠和 Cloud Logging
google_metadata_script_runner
google-compute-engine-powershell 包含 PowerShell 模組。這個模組提供常見函式, 供其他 Windows 客戶環境指令碼中的 PowerShell 指令碼使用。 將記錄檔傳送至 Windows 應用程式事件記錄檔和序列埠 PowerShell
google-compute-engine-auto-updater

內含每天更新 Compute Engine 套件的指令碼。

這個套件預設不會安裝。這種做法可讓您控管更新程序,維持環境穩定性。如果環境可以容許更新而不中斷,您可以安裝這個套件,確保訪客環境套件自動更新。

如要安裝這個套件,請使用下列指令: googet -noconfirm install google-compute-engine-auto-updater

  • VM 中繼資料讀取資料
  • 呼叫 GooGet 代理程式,將記錄檔傳送至 Windows 應用程式事件記錄檔和控制台
auto_updater
google-compute-engine-diagnostics 內含可從執行個體收集診斷資訊的二進位檔,並將資訊儲存至 Cloud Storage bucket。Windows 客戶端代理程式會執行二進位檔。 將資料儲存至 Cloud Storage 值區 診斷
certgen 包含可在執行個體上建立憑證的二進位檔。 certgen
GooGet 包含可安裝及維護 Windows 執行個體訪客環境的二進位檔。 從位於 packages.cloud.google.com 的存放區讀取資料 Cloud de Confiance GooGet
google-compute-engine-vss 安裝 Compute Engine VSS 代理程式和提供者,使用 Microsoft 的磁碟區陰影複製服務 (VSS) 建立永久磁碟快照 與 Cloud de Confiance by S3NS 快照服務通訊 vss
google-osconfig-agent 內含 OS 設定代理程式,VM 管理員會使用這個代理程式管理 OS 庫存、修補程式和政策。如要進一步瞭解 OS 設定代理程式,請參閱「VM 管理員」。

VM 中繼資料讀取及寫入資料

根據預設,您必須啟用 OS 設定代理程式,代理程式才會收集或傳送任何資訊。啟用代理程式後,代理程式會與 OS 設定 API 服務通訊。如要查看代理程式完成的作業,請參閱「VM 管理員稽核記錄」。

guest-osconfig
Compute Engine 的 Windows 驅動程式

內含多個驅動程式,可確保執行個體正常運作並發揮效能。GooGet 套件管理工具會管理這些驅動程式,並將其發布至 Cloud de Confiance by S3NS 存放區。

針對 Windows 作業系統映像檔保有下列 Compute Engine 驅動程式:

驅動程式類型 驅動程式套件名稱
乙太網路轉換器 google-compute-engine-driver-netkvm
SCSI 磁碟 google-compute-engine-driver-vioscsi
顯示卡 google-compute-engine-driver-gga
當機處理常式 google-compute-engine-driver-pvpanic
Virtio 記憶體氣球驅動程式 google-compute-engine-driver-balloon
Google 虛擬 NIC google-compute-engine-driver-gvnic

如要安裝或升級特定驅動程式,請執行下列指令:

        googet install DRIVER_PACKAGE_NAME
        
compute-windows-drivers

訪客環境套件存放區推出

自 2026 年 9 月 3 日起,Compute Engine 將改用區域推出架構,為 Linux 和 Windows 運算執行個體部署訪客環境套件存放區,不再採用全球推出架構。

主要異動

  • 區域推出架構:預設穩定版存放區軌道的更新會依區域推出,而非一次在全球推出。
  • 分階段推出:包裹更新最多可能需要兩週,才會在全球所有地點推出。
  • 全域存放區軌:如果工作負載需要多區域版本一致性,可以使用專屬的全域存放區軌。發布至全球存放區軌道的套件更新,會在區域存放區全數更新後,繼續在全球所有區域同步部署。

可能影響

  • 版本差異:在為期兩週的區域推出期間,使用預設穩定存放區的多區域工作負載部署作業,可能會在不同作用中區域看到不同的客體環境套件版本。
  • 自動化調整:如果您有自動化、CI/CD 管道或修補程序,且這些程序需要多區域套件一致性,您可能需要更新這些系統,才能使用全域存放區軌。

決定要使用區域性推出或全球存放區軌

  • 如果工作負載在更新期間可容許區域版本差異: 則無需採取任何行動。
  • 如果工作流程需要多區域套件一致性:請在 2026 年 9 月 3 日前更新套件管理員設定 (APT、YUM/DNF、Zypper 或 GooGet),指向新的全域存放區。

套件管理員設定變更

如要將套件管理工具從預設的區域軌切換至全球存放區軌,請更新套件管理工具的存放區設定,指向全球軌 (-global)。

  • APT (Debian)

    /etc/apt/sources.list.d/google-cloud.list 中,將存放區名稱從 google-compute-engine-${VERSION_CODENAME}-stable 變更為 google-compute-engine-${VERSION_CODENAME}-global

    deb [signed-by=/etc/apt/keyrings/google-keyring.gpg] http://packages.cloud.google.com/apt google-compute-engine-${VERSION_CODENAME}-global main
    
  • YUM 和 DNF (RHEL、CentOS、Rocky Linux)

    在存放區檔案 (例如 /etc/yum.repos.d/google-cloud.repo) 中,更新存放區項目以使用全域測試群組名稱:

    [google-cloud-compute-global]
    name=Google Cloud Compute Engine Global
    baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-compute-${DISTRO}-${ARCH}-global
    enabled=1
    gpgcheck=1
    
  • GooGet (Windows)

    新增或更新 GooGet 存放區,指向 google-compute-engine-global

    googet addrepo google-compute-engine-global https://packages.cloud.google.com/yuck/repos/google-compute-engine-global
    

後續步驟