共用單一用戶群節點群組與本機單一用戶群節點群組類似。舉例來說,共用節點群組的成本相同、使用相同的配額,且位於資源階層中的父專案下方。
共用節點群組和本機節點群組的差異在於,組織中的其他專案可以在共用節點群組中佈建虛擬機器 (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 設定 (shareSetting
、shareWith
)。使用節點相依性標籤在共用節點群組中佈建 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 控制台「Sole-tenant nodes」頁面的 VM 清單中。
- 在「單一租用者節點群組」頁面上修改共用設定後,UI 中不會更新「共用對象」設定。如要查看更新後的「Shared with」設定,請前往「Sole-tenant nodes」頁面。
- 與機構內的所有專案或機構內的特定專案共用節點群組後,您只能透過擁有專案查看共用節點群組,無法透過共用專案查看共用節點群組。如要在共用節點群組中佈建 VM,請前往共用節點群組的專案,前往「VM 執行個體」頁面,然後修改單一用戶群節點相依性標籤。
共用限制:
定價
共用節點群組中的 VM 不會產生額外費用,共用節點群組也不會產生額外費用。如要進一步瞭解單一用戶群節點定價,請參閱「單一用戶群節點定價」。
事前準備
- 建立單一用戶群節點群組前,請先建立單一用戶群節點範本。
- 在單一用戶群節點中佈建 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
建立並分享新的節點群組
如要建立新的節點群組,並與其他專案或整個機構共用,請使用 Google Cloud 控制台、gcloud CLI 或 REST。
主控台
建立單一用戶群節點群組。詳情請參閱「建立單一租用者節點群組」。
在「調整共用設定」中指定下列其中一個選項,即可調整共用設定:
- 如要與貴機構中的所有專案共用節點群組,請選擇「與機構中的所有專案共用這個節點群組」。
- 如要與機構中的特定專案共用節點群組,請選擇「與機構中的指定專案共用這個節點群組」。
如果您不想共用節點群組,請選擇「不要與其他專案共用這個節點群組」。
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。
主控台
在 Google Cloud 控制台中,切換至您已分享節點群組的專案。
前往「VM instances」(VM 執行個體) 頁面。
點選「建立執行個體」。
在「Zone」(可用區) 中,選擇共用節點群組的可用區。
在「機器設定」>「系列」中,選擇與共用單一租用戶節點群組範本指定的機器類型相同。
展開「Advanced options」(進階選項) 區段。
展開「單一用戶群」專區。
按一下「瀏覽」。
選擇「選取專案」,然後指定含有共用節點群組的專案。
選擇單一用戶群節點群組,或該群組中的特定單一用戶群節點,以便佈建 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。
主控台
前往 Google Cloud 控制台中的「Sole-tenant nodes」(單租戶節點) 頁面。
如要查看節點群組的屬性,請在「名稱」欄中按一下節點群組的名稱。
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。
主控台
前往 Google Cloud 控制台中的「Sole-tenant nodes」(單租戶節點) 頁面。
在「名稱」欄中,按一下節點群組的名稱。
如要與機構內的所有專案或機構內的特定專案共用節點群組,請在「總覽」>「共用對象」中,按一下「編輯」圖示 。
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。
主控台
前往 Google Cloud 控制台中的「Sole-tenant nodes」(單租戶節點) 頁面。
按一下節點群組的「名稱」。
在「總覽」>「共用給」中,按一下「編輯」圖示 。
如要停止分享,請選擇「不要與其他專案共用這個節點群組」。
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。
主控台
前往 Google Cloud 控制台中的「Sole-tenant nodes」(單租戶節點) 頁面。
在「名稱」欄中,按一下節點群組的名稱。
點選「刪除」。
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
:要刪除的節點群組名稱