共用單一用戶群節點群組

共用單一用戶群節點群組與本機單一用戶群節點群組類似。舉例來說,共用節點群組的費用相同、消耗的配額相同,且位於資源階層結構中的父項專案下。

共用節點群組與本機節點群組的差異在於,貴機構中的其他專案可以在共用節點群組中佈建虛擬機器 (VM) 執行個體。

在多個專案或機構之間共用節點群組,有助於:

  • 將您管理的節點群組整合到單一專案,然後與其他專案或整個機構共用這些節點

  • 將各專案的 VM 合併到使用率偏低的節點群組後,刪除節點以降低成本

  • 透過單一團隊管理單一用戶群節點

  • 與較小的專案共用單一租戶節點,並保留這些專案之間的安全性與存取權控管界限

  • 在同一專案的節點群組之間執行即時遷移

  • 使用「在節點群組內遷移」維護政策,提高節點群組的使用率,並減少預留的維護節點數量

下圖顯示與其他專案共用的節點群組,以便管理這些專案中 VM 的其他部門,可以在共用節點群組中佈建 VM。

這張圖表顯示跨專案共用的節點群組。管理不同專案中 VM 的部門可以在共用節點群組中佈建 VM。

共用節點群組的運用效益

下表比較使用本機節點群組的專案,以及使用共用節點群組的專案。請注意,使用共用節點群組的專案,vCPU 使用率不足的情況會減少。

專案設定 本機節點群組 共用節點群組
專案 10 10
每個專案的 vCPU 24 24
節點群組 10 1
節點 / 節點群組 1 3
每個節點的 vCPU 80 80
使用率 / 節點群組 24 80
使用率過低 / 節點群組 56 0
總閒置時間 10 x 56 = 560 個 vCPU 1 x 0 = 0 個 vCPU

共用節點群組的設定

Compute Engine 會使用下列設定,在共用節點群組中佈建 VM,並共用節點群組:

  • 您在建立或更新單一租戶節點群組時設定的共用設定。如要指定是否與其他專案或整個機構共用節點群組,請使用 gcloud CLI 設定 (--share-setting--share-with) 或 REST 設定 (shareSettingshareWith)。

  • 您使用節點相依性標籤在共用節點群組中佈建 VM 時,預設會使用的 compute.googleapis.com/project 節點相依性標籤。如要瞭解其他預設節點相依性標籤,請參閱「預設相依性標籤」一節。

維護政策考量事項

如果節點群組使用節點群組內遷移維護政策,Compute Engine 會保留至少 1 個節點供即時遷移事件使用,因此節點群組必須至少有 2 個節點。您無法在預留節點上排程 VM,因此採用這項維護政策的節點群組通常整體使用率較低。因此,需要「在節點群組內遷移」維護政策的工作負載很適合共用節點群組,因為這類工作負載通常最能從提升使用率中獲益。

IAM 角色和權限

分享節點群組時,請注意下列有關 IAM 角色和權限的資訊:

  • 如果節點群組與專案共用,則任何可在列出專案或機構中建立 VM 的使用者,都能從這些專案將 VM 佈建到共用節點群組,不必變更 IAM 角色或權限。

  • compute.soleTenantViewer IAM 角色可讓您列出及查看節點群組 (gcloud CLI/ REST)。您無法使用這個角色修改節點群組。無論 VM 的 IAM 權限為何,只要使用者具備這個角色或列出節點群組的權限,就能查看節點群組中所有 VM 的專案 ID、名稱、機型,以及本機 SSD 和 GPU 的相關資訊。

限制

  • 法規遵循制度限制:

    • 無論 VM 的 IAM 權限為何,只要使用者有權列出節點群組,就能查看節點群組中所有 VM 的專案 ID、名稱和機器類型。因此,為避免跨專案資訊揭露的風險,在共用節點群組中佈建 VM 的專案應遵守相同的法規遵循制度
  • Google Cloud 主機限制:

    • 如果沒有權限查看共用節點群組中的 VM,這些 VM 就不會顯示在Google Cloud 控制台「單一租戶節點」頁面的 VM 清單中。
    • 在「單一租戶節點群組」頁面修改共用設定後,UI 中的「與誰共用」設定不會更新。如要查看更新後的「與誰共用」設定,請前往「單一租戶節點」頁面。
    • 與機構中的所有專案或指定專案共用節點群組後,您只能從擁有專案中查看共用的節點群組,無法從共用專案中查看。如要在共用節點群組中佈建 VM,請前往節點群組共用專案的「VM instances」(VM 執行個體) 頁面,然後修改單一用戶群節點相依性標籤。
  • 共用限制:

    • 您必須從擁有節點群組的專案更新共用設定。
    • 使用projects共用設定時,最多可以指定 100 個專案。
    • 您無法在機構之間共用節點群組。舉例來說,如果您遷移專案,而該專案包含從一個機構遷移至另一個機構的共用節點群組,您也必須遷移所有在該共用節點群組中執行 VM 的專案。
    • 使用共用的單一租戶節點群組時,無法在專案之間執行即時遷移。詳情請參閱「手動即時遷移 VM」。

定價

共用節點群組中的 VM 不會產生額外費用,共用節點群組也不會產生額外費用。如要進一步瞭解單一租戶節點定價,請參閱單一租戶節點定價

事前準備

  • 建立單一租戶節點群組前,請先建立單一租戶節點範本
  • 在單一租戶節點中佈建 VM 前,請先檢查配額。視您預留的節點數量和大小而定,您可能需要申請額外配額
  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 設定預設地區和區域
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

建立新的節點群組並共用

如要建立新的節點群組,並與其他專案或整個機構共用,請使用 Google Cloud 控制台、gcloud CLI 或 REST。

控制台

  1. 建立單一租戶節點群組。詳情請參閱「建立單一租戶節點群組」。

  2. 如要設定共用設定,請在「Configure share settings」(設定共用設定)中指定下列其中一個選項:

    • 如要與貴機構中的所有專案共用節點群組,請選擇「與組織中的所有專案共用這個節點群組」
    • 如要與組織中的特定專案共用節點群組,請選擇「與組織中的指定專案共用這個節點群組」

    如不想共用節點群組,請選擇「不要與其他專案共用這個節點群組」

gcloud

如要建立共用節點群組,請使用下列gcloud compute sole-tenancy node-groups create 指令

gcloud compute sole-tenancy node-groups create NODE_GROUP \
    --zone=ZONE \
    --node-template=NODE_TEMPLATE \
    --target-size=SIZE \
    --share-setting=SHARE_SETTING \
    --share-with=PROJECTS

更改下列內容:

  • NODE_GROUP:節點群組的名稱。

  • ZONE:要在其中建立節點群組的可用區。

  • NODE_TEMPLATE:先前建立的節點範本名稱。

  • SIZE:節點群組中的節點數量。

  • SHARE_SETTING:節點群組的共用設定。設為 projects 可與特定專案共用,設為 organization 則可與整個機構共用。

  • PROJECTS:要與節點群組共用的專案 ID 或專案編號清單。只有在將 SHARE_SETTING 設為 projects 時,才需要這個屬性。

REST

如要建立共用節點群組,請使用下列nodeGroups.insert方法

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups

{
  ...
  "name": NODE_GROUP,
  "nodeTemplate": NODE_TEMPLATE,
  "size": SIZE,
  "shareSettings": {
    "shareType": SHARE_TYPE,
    "projectMap": {
      string: {
        "projectId": PROJECTS
      },
    }
  }
  ...
}

更改下列內容:

  • PROJECT:要在其中建立節點群組的專案名稱。

  • ZONE:要在其中建立節點群組的可用區。

  • NODE_GROUP:節點群組的名稱。

  • NODE_TEMPLATE:先前建立的節點範本名稱。

  • SIZE:節點群組中的節點數量。

  • SHARE_TYPE:節點群組的共用設定。設為 SPECIFIC_PROJECTS 可與特定專案共用,設為 ORGANIZATION 則可與整個機構共用。

  • PROJECTS:要與節點群組共用的專案 ID 或專案編號清單。只有在將 SHARE_TYPE 設為 SPECIFIC_PROJECTS 時,才需要這個屬性。

在共用節點群組中佈建單一用戶群 VM

如要在共用節點群組中佈建單一租戶 VM,請使用Google Cloud 控制台、gcloud CLI 或 REST。

控制台

  1. 在 Google Cloud 控制台中,切換至您已共用節點群組的專案。

  2. 前往「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體

  3. 點選「建立執行個體」

  4. 在「區域」中,選擇共用節點群組的區域。

  5. 在「機器設定」>「系列」中,選擇共用單一租戶節點群組範本指定的機器類型。

  6. 展開「Advanced options」(進階選項) 區段。

  7. 展開「單一用戶群」專區。

  8. 按一下「瀏覽」

  9. 選擇「選取專案」,然後指定含有共用節點群組的專案。

  10. 選擇單一用戶群節點群組,或該群組中的特定單一用戶群節點,以佈建 VM。

gcloud

使用節點群組名稱在共用節點群組中佈建 VM

如要使用節點群組名稱,在共用節點群組中佈建獨占租戶 VM,請使用下列 gcloud compute instances create 指令

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --node-group=NODE_GROUP \
    --node-project=NODE_PROJECT

更改下列內容:

  • VM_NAME:要在共用節點群組中建立的新單一租戶 VM 名稱

  • MACHINE_TYPE:新單一租戶 VM 的機型

  • NODE_GROUP:要建立單一租戶 VM 的共用節點群組名稱

  • NODE_PROJECT:包含節點群組的專案,用於佈建 VM

使用節點相依性檔案,在共用節點群組中佈建 VM

如要使用節點親和性檔案,在共用節點群組中佈建專屬租戶 VM,請使用下列 gcloud compute instances create 指令

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --node-affinity-file=NODE_AFFINITY_FILE

更改下列內容:

  • VM_NAME:要使用相依性標籤在共用節點群組中建立的單一租戶 VM 名稱。

  • MACHINE_TYPE:要在共用節點群組中建立的單一租戶 VM 機型。

  • NODE_AFFINITY_FILE:包含節點親和性資訊的 .json 檔案名稱。在節點相依性檔案中,將相依性標籤鍵設為 "compute.googleapis.com/project",運算子設為 "IN",值設為包含節點群組的專案。如要進一步瞭解如何設定節點親和性,請參閱「設定節點親和性標籤」。

REST

如要使用節點親和性檔案,在共用節點群組中佈建單一租戶 VM,請使用下列 nodeGroups.insert 方法

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances

{
  ...
  "name": VM_NAME,
  "machineType": MACHINE_TYPE,
  "scheduling": {
    ...
    "nodeAffinities": [
      {
        "key": KEY,
        "operator": OPERATOR,
        "values": [
          VALUE
        ]
      }
    ],
    ...
  },
  ...
}

更改下列內容:

  • PROJECT:擁有節點群組的專案名稱。

  • ZONE:節點群組的可用區。

  • VM_NAME:要使用相依性標籤在共用節點群組中建立的單一租戶 VM 名稱。

  • MACHINE_TYPE:要在共用節點群組中建立的單一租戶 VM 機型。

  • KEY:相依性標籤。請設為 "compute.googleapis.com/project"

  • OPERATOR:親和性標籤運算子。請設為 "IN"

  • VALUE:包含節點群組的專案,用於佈建 VM。使用專案名稱或專案 ID 指定一個專案。

如要進一步瞭解如何設定節點親和性,請參閱「設定節點親和性標籤」。

查看節點群組的共用設定

如要查看節點群組的共用設定,請使用 Google Cloud 控制台、gcloud CLI 或 REST。

控制台

  1. 前往 Google Cloud 控制台的「單一租戶節點」頁面。

    前往單一用戶群節點

  2. 如要查看節點群組的屬性,請在「名稱」欄中,按一下節點群組的名稱。

gcloud

如要查看節點群組的共用設定,請使用下列 gcloud compute sole-tenancy node-groups describe 指令

gcloud compute sole-tenancy node-groups describe NODE_GROUP

NODE_GROUP 替換為要查看共用設定的節點群組名稱。

REST

如要查看節點群組的共用設定,請使用下列 nodeGroups.get 方法

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups

更改下列內容:

  • PROJECT:要查看共用設定的節點群組所在專案名稱

  • ZONE:包含要查看共用設定的節點群組的可用區

共用現有節點群組

如要與其他專案或整個機構共用現有節點群組,請使用 Google Cloud 控制台、gcloud CLI 或 REST。

控制台

  1. 前往 Google Cloud 控制台的「單一租戶節點」頁面。

    前往單一用戶群節點

  2. 在「Name」(名稱) 欄中,按一下節點群組名稱。

  3. 如要與機構內的所有專案共用節點群組,或與機構內選取的專案共用節點群組,請依序點選「總覽」>「與以下對象共用」,然後按一下「編輯」圖示

gcloud

如要更新節點群組的共用設定,請使用下列gcloud compute sole-tenancy node-groups update 指令

gcloud compute sole-tenancy node-groups update NODE_GROUP \
    --zone=ZONE \
    --share-setting=SHARE_SETTING \
    --share-with=PROJECTS

更改下列內容:

  • NODE_GROUP:要更新共用設定的節點群組名稱。

  • SHARE_SETTING:節點群組的共用設定。設為 projects 可與特定專案共用,設為 organization 則可與整個機構共用。

  • PROJECTS:要與節點群組共用的專案 ID 或專案編號清單。只有在將 SHARE_SETTING 設為 projects 時,才需要這個屬性。

REST

如要更新節點群組的共用設定,請使用下列nodeGroups.patch方法

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

{
  "shareSettings": {
    "shareType": SHARE_TYPE,
    "projectMap": {
      string: {
        "projectId": PROJECTS
      },
    }
  }
}

更改下列內容:

  • PROJECT:要更新共用設定的節點群組所屬專案名稱。

  • ZONE:包含要更新共用設定的節點群組的可用區。

  • NODE_GROUP:要更新共用設定的節點群組名稱。

  • SHARE_TYPE:節點群組的共用設定。設為 projects 可與特定專案共用,設為 organization 則可與整個機構共用。

  • PROJECTS:要與節點群組共用的專案 ID 或專案編號清單。只有在將 SHARE_SETTING 設為 SPECIFIC_PROJECTS 時,才需要這個屬性。

停止共用節點群組

如要停止與其他專案或整個機構共用節點群組,請使用 gcloud CLI 或 REST。

控制台

  1. 前往 Google Cloud 控制台的「單一租戶節點」頁面。

    前往單一用戶群節點

  2. 按一下節點群組的「名稱」

  3. 依序點選「總覽」>「與誰共用」,然後按一下「編輯」圖示

  4. 如要停止共用,請選擇「不要與其他專案共用這個節點群組」

gcloud

如要停止與其他專案或整個機構共用節點群組,請使用下列 gcloud compute sole-tenancy node-groups update 指令

gcloud compute sole-tenancy node-groups update NODE_GROUP \
    --zone=ZONE \
    --share-setting=local

NODE_GROUP 替換為要停止共用的節點群組名稱。

REST

如要停止與其他專案或整個機構共用節點群組,請使用下列nodeGroups.patch方法

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

{
  "shareSettings": {
    "shareType": LOCAL
  }
}

更改下列內容:

  • PROJECT:要停止共用節點群組的專案名稱

  • ZONE:包含要停止共用節點群組的可用區

  • NODE_GROUP:要停止共用的節點群組名稱

從擁有專案中刪除共用節點群組

如要從擁有專案中刪除共用節點群組,請使用Google Cloud 控制台、gcloud CLI 或 REST。刪除節點群組前,請先停止在節點群組中執行的所有 VM。

控制台

  1. 前往 Google Cloud 控制台的「單一租戶節點」頁面。

    前往單一用戶群節點

  2. 在「Name」(名稱) 欄中,按一下節點群組名稱。

  3. 點選「刪除」。

gcloud

如要從擁有專案中刪除共用節點群組,請使用下列 gcloud compute sole-tenancy node-groups delete 指令

gcloud compute sole-tenancy node-groups delete NODE_GROUP

NODE_GROUP 替換為要刪除的節點集區名稱。

REST

如要從擁有專案中刪除共用節點群組,請使用下列 nodeGroups.delete 方法

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

更改下列內容:

  • PROJECT:要刪除節點群組的專案名稱

  • ZONE:包含要刪除節點群組的可用區

  • NODE_GROUP:要刪除的節點群組名稱