本頁面說明如何使用 Compute Engine 單一用戶群節點,隔離在 Google Kubernetes Engine (GKE) Standard 叢集上執行的工作負載。單一用戶群節點是專用實體伺服器,只會執行特定專案的 VM。使用單一用戶群節點,可將您的 VM 與其他專案中的 VM 隔開,或將您的 VM 聚集在同一個託管硬體中。
GKE Autopilot 不支援這項功能。如要進一步瞭解 Autopilot 安全性界線,請參閱「Autopilot 中的安全性界線」。
如要在 GKE 中使用單一租戶節點,請在 Compute Engine 中建立單一租戶節點群組,並使用該節點群組建立 GKE 節點集區。您可以從 GKE 叢集的專案建立節點集區,也可以使用機構內各專案的資源,建立共用單一租戶節點。舉例來說,您可以在機構中指定擁有者專案,並在其中建立單一租戶節點群組,然後在消費者專案中,建立含有節點集區的叢集,並使用來自擁有者專案的節點群組。
事前準備
開始之前,請確認你已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update
,取得最新版本。
要求增加配額
單一租戶節點很大 (例如 96 個 vCPU 和 624 GB 記憶體),預設專案配額太低,無法處理這類節點。
您必須在配額頁面要求提高 Compute Engine API CPU 的配額,才能建立單一租戶節點。如要進一步瞭解如何要求增加配額,請參閱「配額」。
您需要的 CPU 數量取決於下列因素:
- 目前的 CPU 配額用量。
- 節點群組的大小。
- 節點範本。
檢查單一租戶節點類型的核心數量,並要求至少該數量的 CPU 限制,最好再增加 10 個 CPU,確保專案有足夠的容量。
建立單一用戶群節點範本
單一租戶節點範本是區域資源,用於定義屬性並套用至節點群組中的每個節點。詳情請參閱節點類型。
如果您使用共用單一租戶節點,請務必在節點群組的擁有者專案中完成這些操作說明,而不是在叢集的消費者專案中完成。
控制台
gcloud
使用 gcloud compute sole-tenancy node-templates
create
指令建立節點範本:
gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \ --node-type=NODE_TYPE \ --node-affinity-labels=AFFINITY_LABELS \ --region=COMPUTE_REGION
更改下列內容:
TEMPLATE_NAME
:新節點範本的名稱。NODE_TYPE
:根據此範本建立的單一用戶群節點節點類型。使用gcloud compute sole-tenancy node-types list
指令,取得每個區域可用的節點類型清單。AFFINITY_LABELS
:相依性標籤的鍵和值,[KEY=VALUE,...]
。相依性標籤可讓您以邏輯方式將節點和節點群組分組,之後在佈建 VM 時,您可以在 VM 上指定相依性標籤,將 VM 排程到特定節點或節點群組。詳情請參閱「節點親和性和反親和性」。COMPUTE_REGION
:要在其中建立節點範本的區域。您可以使用這個範本,在這個區域的任何可用區建立節點群組。
輸出結果會與下列內容相似:
Created [https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/nodeTemplates/template-name].
建立單一用戶群節點群組
節點群組是來自相同單一租戶節點範本,位於特定區域的一組單一租戶節點。如要使用多個區域的區域叢集和節點集區,您必須在每個區域中建立同名的節點群組。執行這項步驟前,請確認您有足夠的配額。
如果您使用共用單一租戶節點,請務必在節點群組的擁有者專案中完成這些操作說明,而不是在叢集的消費者專案中完成。
控制台
如要建立單一租戶節點群組,請執行下列步驟:
前往 Google Cloud 控制台的「單一用戶群節點」頁面。
按一下「建立節點群組」。
指定節點範本的「Name」(名稱)。
選取建立節點範本時使用的「Region」(區域),然後選取該「Region」(區域) 中的「Zone」(區域)。
選取「節點範本」。
(選用) 啟用「Autoscaling mode」(自動調度資源模式)。
指定群組中想要的「節點數」。
視需要變更維護政策。
如要共用單一租戶節點群組,請在「設定共用設定」部分中指定下列其中一項,設定共用設定:
- 與組織中的所有專案共用這個節點群組。
- 與組織中的指定專案共用這個節點群組。
按一下「建立」來建立節點群組。
gcloud
從範本建立節點群組:
gcloud compute sole-tenancy node-groups create GROUP_NAME \
--zone COMPUTE_ZONE \
--node-template TEMPLATE_NAME --target-size TARGET_SIZE \
--share-settings=SHARE_SETTING \
--share-with=PROJECTS
更改下列內容:
GROUP_NAME
:新節點群組的名稱。COMPUTE_ZONE
:此節點群組所在的區域。此區域必須與您使用的節點範本位於同一個地區。TEMPLATE_NAME
:您使用的節點範本名稱。TARGET_SIZE
:您要在群組中建立的節點數。SHARE_SETTING
:節點群組的共用設定。設為projects
可與特定專案共用,設為organization
則可與整個機構共用。PROJECTS
:要與節點群組共用的專案 ID 或專案編號清單。只有在將SHARE_SETTING
設為projects
時,才需要這個屬性。
建立 GKE 單一租戶節點集區
您已在 Compute Engine 中建立單一租戶節點群組,現在可以建立單一租戶節點集區。
如果您已有 GKE 叢集,可以將單一租戶節點集區新增至該叢集。如果沒有,請使用 gcloud container clusters create
建立叢集。
如果您使用地區叢集,或節點集區適用於多個區域,則必須在每個區域中建立具有相同名稱的節點群組。如果無法在每個區域重複使用名稱,請為每個區域建立個別的節點集區。
從叢集的專案建立具有單一租戶節點群組的節點集區
如要使用叢集專案中的節點群組建立節點集區,請傳遞單一用戶群節點群組的名稱。如要使用共用的單一用戶群節點群組,或使用您在建立單一用戶群節點範本時設定的自訂節點相依性標籤,請參閱使用節點相依性檔案建立含共用單一用戶群節點的節點集區的操作說明。
使用指定的節點群組建立新的節點集區:
區域節點集區:
gcloud container node-pools create NODE_POOL_NAME \
--node-group GROUP_NAME --cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION --machine-type=MACHINE_TYPE \
--node-locations=COMPUTE_ZONE1
如果是區域節點集區:
gcloud container node-pools create NODE_POOL_NAME \
--node-group GROUP_NAME --cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION --machine-type=MACHINE_TYPE \
--node-locations=COMPUTE_ZONE1,COMPUTE_ZONE2
更改下列內容:
NODE_POOL_NAME
:新節點集區的名稱。GROUP_NAME
:您要使用的現有單一租戶節點群組名稱。CLUSTER_NAME
:要建立節點集區的叢集名稱。CONTROL_PLANE_LOCATION
:叢集控制層的 Compute Engine 位置。為地區叢集提供地區,或為區域叢集提供區域。MACHINE_TYPE
:節點集區機器類型。COMPUTE_ZONE1
、COMPUTE_ZONE2,[...]
:專屬節點群組的區域。
如需可指定的完整選用旗標清單,請參閱 gcloud container node-pools create
說明文件。
使用節點親和性檔案,建立具有共用單一租戶節點的節點集區
如要使用共用單一用戶群節點群組建立節點集區,請務必使用節點相依性標籤。您也可以使用節點相依性,從相同專案中選擇節點群組。
如要參照標籤,請按照操作說明建立節點集區,並將 --node-group
旗標替換為 --sole-tenant-node-affinity-file
旗標。傳遞含有這些標籤的 JSON 檔案。例如,請參閱下列指令:
gcloud container node-pools create sole-tenant-node-pool \
--sole-tenant-node-affinity-file /path/to/affinity/file --cluster my-cluster \
--location us-central1 --machine-type n1-standard-4 \
--node-locations=us-central1-a,us-central1-b,us-central1-c
以下各節說明搭配單一租戶節點使用節點親和性標籤的用途。
從專案指定節點群組名稱
如要使用特定專案和節點群組名稱的單一租戶節點群組,請在節點相依性檔案中指定這些值。如果您要建立多區域節點集區,且每個區域的節點群組名稱必須相符,就可以使用這項親和性。如要在指定的擁有者專案中使用任何節點群組,請從 JSON 檔案中省略整個 compute-googleapis.com/node-group-name
區塊。
請參閱以下範例:
[
{
"key" : "compute.googleapis.com/project",
"operator" : "IN",
"values" : ["OWNER_PROJECT"]
},
{
"key" : "compute.googleapis.com/node-group-name",
"operator" : "IN",
"values" : ["GROUP_NAME"]
},
]
指定自訂標籤
您也可以使用節點親和性和反親和性,透過具有自訂標籤的節點群組建立節點集區。系統會自動為每個節點群組指派預設相依性標籤。您可以參照先前的範例使用預設標籤,也可以使用建立節點範本時指定的自訂標籤。您可以使用自訂標籤隔離或分組工作負載。
請參閱以下範例:
[
{
"key" : "compute.googleapis.com/project",
"operator" : "IN",
"values" : ["OWNER_PROJECT"]
},
{
"key" : "workload",
"operator" : "IN",
"values" : ["frontend"]
},
]
限制
建立含有單一用戶群節點的節點集區時,您有責任管理單一用戶群節點群組的基礎容量。請考慮下列功能如何與單一租戶節點群組互動:
- 您可以啟用叢集自動調度資源功能,但這項功能會受到基礎節點群組容量的限制。您可以在 Compute Engine 中設定節點群組自動配置器,自動管理單一租戶節點群組的大小。
- 如果您使用單一租戶節點,就無法為叢集啟用節點自動佈建功能。
- 您可以使用任何節點升級策略,但必須確保有足夠的容量,可使用所選升級策略支援節點集區。