建立擴充功能政策,安裝 VM 擴充功能

本文說明如何建立 VM 擴充功能政策,以便在 Compute Engine 虛擬機器 (VM) 叢集上自動安裝及管理擴充功能。定義政策後,您可以確保符合指定條件 (例如 VM 標籤) 的 VM 都會安裝並維護特定擴充功能。

事前準備

必要的 IAM 角色

如要取得建立擴充功能政策所需的權限,請要求管理員授予您「VM 擴充功能政策管理員 」(roles/compute.vmExtensionPolicyAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備 compute.vmExtensionPolicies.create 權限,可建立擴充功能政策。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

如要進一步瞭解 Compute Engine 中的 IAM 角色和權限,請參閱「Compute Engine 角色和權限」。

建立 VM 擴充功能政策

請使用下列任一方法建立 VM 擴充功能政策。這項政策會定義要安裝哪些擴充功能,以及要安裝在哪些 VM 上。

控制台

  1. 前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。

    前往 VM 擴充功能政策

  2. 按一下「建立擴充功能政策」
  3. 在「Name」(名稱) 欄位中,輸入政策名稱。
  4. 選用:在「Description」(說明) 欄位中輸入政策的說明。
  5. 在「優先順序」欄位中,指定優先順序編號,以解決政策之間的衝突。數字越小越優先。預設值為 1000。
  6. 在「Zone」(可用區) 清單中,選取要套用這項政策的可用區。
  7. 在「擴充功能」部分,按一下「新增擴充功能」,然後針對要安裝在目標 VM 上的每個擴充功能執行下列操作:
    1. 從「擴充功能」清單中選取擴充功能。請參閱「支援的擴充功能」。
    2. 從「版本」清單中指定擴充功能版本號碼。如要選取最新版本,請留空。
      • 如果是作業套件代理程式,您可以指定 2.58.0 以上版本。
      • 如果是 SAP 擴充功能和 Compute 擴充功能工作負載,請將欄位留空,選取最新版本。
    3. 選用:在「設定檔內容」欄位中,輸入擴充功能的設定參數。
  8. 在「Target VM instances」(目標 VM 執行個體) 區段中,選取要套用政策的 VM。如要選取具有特定標籤的 VM,請按一下「新增標籤」,然後新增鍵/值組合。
  9. 點選「建立」

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_1EXTENSION_NAME_2:以半形逗號分隔的清單,列出要新增至政策的擴充功能。您必須至少指定一個擴充功能。擴充功能的有效值如下:
    • ops-agent
    • google-cloud-sap-extension
    • google-cloud-workload-extension
  • EXTENSION_NAME_1=VERSION_1EXTENSION_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

後續步驟