本文說明如何建立 VM 擴充功能政策,以便在 Compute Engine 虛擬機器 (VM) 叢集上自動安裝及管理擴充功能。定義政策後,您可以確保符合指定條件 (例如 VM 標籤) 的 VM 都會安裝並維護特定擴充功能。
事前準備
- 執行下列指令,安裝 Beta 版元件:
gcloud components install beta
- 查看 VM 擴充功能管理工具的基本概念。
- 查看 VM 擴充功能管理工具配額。
- 如果尚未啟用,請在 Google Cloud 專案中啟用 Compute Engine API。
- 確認 VM 執行客體代理程式
20241209.01以上版本。 - 如要查看 VM 擴充功能管理工具事件的偵錯記錄,請設定訪客代理程式的記錄設定。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
必要的 IAM 角色
如要取得建立擴充功能政策所需的權限,請要求管理員授予您「VM 擴充功能政策管理員 」(
roles/compute.vmExtensionPolicyAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。這個預先定義的角色具備
compute.vmExtensionPolicies.create權限,可建立擴充功能政策。如要進一步瞭解 Compute Engine 中的 IAM 角色和權限,請參閱「Compute Engine 角色和權限」。
建立 VM 擴充功能政策
請使用下列任一方法建立 VM 擴充功能政策。這項政策會定義要安裝哪些擴充功能,以及要安裝在哪些 VM 上。
控制台
- 前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。
- 按一下「建立擴充功能政策」。
- 在「Name」(名稱) 欄位中,輸入政策名稱。
- 選用:在「Description」(說明) 欄位中輸入政策的說明。
- 在「優先順序」欄位中,指定優先順序編號,以解決政策之間的衝突。數字越小越優先。預設值為 1000。
- 在「Zone」(可用區) 清單中,選取要套用這項政策的可用區。
- 在「擴充功能」部分,按一下「新增擴充功能」,然後針對要安裝在目標 VM 上的每個擴充功能執行下列操作:
- 從「擴充功能」清單中選取擴充功能。請參閱「支援的擴充功能」。
- 從「版本」清單中指定擴充功能版本號碼。如要選取最新版本,請留空。
- 如果是作業套件代理程式,您可以指定
2.58.0以上版本。 - 如果是 SAP 擴充功能和 Compute 擴充功能工作負載,請將欄位留空,選取最新版本。
- 如果是作業套件代理程式,您可以指定
- 選用:在「設定檔內容」欄位中,輸入擴充功能的設定參數。
- 在「Target VM instances」(目標 VM 執行個體) 區段中,選取要套用政策的 VM。如要選取具有特定標籤的 VM,請按一下「新增標籤」,然後新增鍵/值組合。
- 點選「建立」。
gcloud
如要建立 VM 擴充功能政策,並將政策推出至特定可用區的 VM,請使用
gcloud beta compute zone-vm-extension-policies create指令:gcloud beta compute zone-vm-extension-policies create POLICY_NAME \ --zone=ZONE \ --description="DESCRIPTION" \ --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \ --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \ --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \ --inclusion-labels=KEY_1=VALUE_1 \ --priority=PRIORITY
更改下列內容:
POLICY_NAME:VM 擴充功能政策的名稱。ZONE:這項政策適用的區域。DESCRIPTION:政策的選用說明。EXTENSION_NAME_1、EXTENSION_NAME_2:以半形逗號分隔的清單,列出要新增至政策的擴充功能。您必須至少指定一個擴充功能。擴充功能的有效值如下:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
EXTENSION_NAME_1=VERSION_1、EXTENSION_NAME_2=VERSION_2:以半形逗號分隔的鍵/值組合清單,其中鍵為擴充功能名稱,值為擴充功能版本。如果未指定擴充功能版本,VM 擴充功能管理工具會使用最新版本,並在推出新版本時自動升級。EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2:以半形逗號分隔的鍵/值配對清單,其中鍵是擴充功能名稱,值是該擴充功能的設定檔路徑。這個路徑位於執行gcloud指令的 VM 上,而非安裝擴充功能的 VM。或者,如要以內嵌字串形式提供設定,請使用
--config旗標而非--config-from-file,例如EXTENSION_NAME_1="CONFIG_1"。您可以選擇使用--config-from-file或--config,但不能在同一個指令中同時使用兩者。KEY_1=VALUE_1:以半形逗號分隔的鍵/值組合清單,用於定義選擇器的納入標籤。VM 必須具備選取器中的所有指定標籤,才能成為目標。如果您多次指定--inclusion-labels,政策會以任何提供的選取器 (邏輯 OR) 為目標 VM。如果省略這個標記,政策會以指定可用區中的所有 VM 為目標。PRIORITY:介於 0 至 65535 之間的整數,用於定義政策的優先順序。數字越小越優先。預設值為 1000。如果區域中已有指定名稱的政策,這項指令就會失敗。
範例 1
下列指令會建立名為
test-extension-policy的政策,在專案test-project的區域us-central1-f中安裝ops-agent擴充功能。--config-from-file標記會指定本機檔案的路徑,該檔案包含 Ops Agent 的 YAML 設定。gcloud beta compute zone-vm-extension-policies create test-extension-policy \ --project=test-project \ --zone=us-central1-f \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml"
示例 2
下列指令會建立名為
test-extension-policy-2的政策,在可用區us-central1-f中為專案test-project安裝ops-agent擴充功能,適用於標籤為env=prod的 VM。政策優先順序設為500,而--config-from-file標記會指定本機檔案的路徑,其中包含 Ops Agent 的 YAML 設定。gcloud beta compute zone-vm-extension-policies create test-extension-policy-2 \ --project=test-project \ --zone=us-central1-f \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --priority=500 \ --inclusion-labels=env=prod
後續步驟
- 瞭解如何管理 VM 擴充功能。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-12-10 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-12-10 (世界標準時間)。"],[],[]] -