本文說明如何建立含 Arm 節點的 GKE Standard 叢集或節點集區,以便在 Google Kubernetes Engine (GKE) 上執行 Arm 工作負載。如要瞭解如何在 Autopilot 叢集上部署 Arm 工作負載,請參閱「在 Arm 架構上部署 Autopilot 工作負載」。
您可以使用 C4A、N4A (預先發布版) 或 Tau T2A 機器系列建立含 Arm 節點的叢集。如要進一步瞭解 Arm 的優點,並為工作負載選擇最合適的機器系列,請參閱 Compute 上的 Arm VM。
使用 GKE 時,您可以建立叢集,其中包含具有單一架構類型 (例如 Arm) 或多個架構類型 (例如 Arm 和 x86) 的節點集區。執行多種架構類型的節點時,您可以跨架構將工作負載部署至同一叢集。
本文適用於佈建及設定雲端資源,並部署工作負載的運算子和開發人員。如要進一步瞭解常見角色,請參閱「常見的 GKE 使用者角色和工作」。
閱讀本文之前,請先熟悉 GKE 上的 Arm 工作負載。
事前準備
開始之前,請確認您已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文中的指令。
- 請參閱 C4A、N4A 和 T2A 節點的規定和限制。
- 確認您具備建立叢集的必要權限。您至少應具備 Kubernetes Engine 叢集管理員身分。
設定 GKE 的 IAM 服務帳戶
GKE 會使用附加至節點的 IAM 服務帳戶,執行記錄和監控等系統工作。這些節點服務帳戶至少須具備專案的 Kubernetes Engine 預設節點服務帳戶 (roles/container.defaultNodeServiceAccount) 角色。根據預設,GKE 會使用專案中自動建立的 Compute Engine 預設服務帳戶做為節點服務帳戶。
如要將 roles/container.defaultNodeServiceAccount 角色授予 Compute Engine 預設服務帳戶,請完成下列步驟:
控制台
- 前往「歡迎」頁面:
- 在「專案編號」欄位中,按一下「複製到剪貼簿」圖示 。
- 前往「IAM」(身分與存取權管理) 頁面:
- 點按「 Grant access」(授予存取權)。
- 在「New principals」(新增主體) 欄位中,指定下列值:
將PROJECT_NUMBER-compute@developer.gserviceaccount.comPROJECT_NUMBER替換為您複製的專案編號。 - 在「Select a role」(選取角色) 選單中,選取「Kubernetes Engine Default Node Service Account」(Kubernetes Engine 預設節點服務帳戶) 角色。
- 按一下 [儲存]。
gcloud
- 找出 Google Cloud 專案編號:
gcloud projects describe PROJECT_ID \ --format="value(projectNumber)"
將
PROJECT_ID替換為專案 ID。輸出結果會與下列內容相似:
12345678901
- 將
roles/container.defaultNodeServiceAccount角色授予 Compute Engine 預設服務帳戶:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/container.defaultNodeServiceAccount"
將
PROJECT_NUMBER替換為上一步的專案編號。
建立具有 Arm 節點集區的叢集
以下說明如何建立新叢集,並從 C4A、N4A (預先發布版) 或 Tau T2A 機器系列,建立執行 Arm 節點的節點集區。
您可以使用 gcloud CLI、 Google Cloud 控制台或 Terraform 建立叢集。
gcloud
使用 Arm 節點建立預設節點集區的新區域叢集:
gcloud container clusters create CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--node-locations NODE_LOCATIONS \
--machine-type ARM_MACHINE_TYPE \
--num-nodes NUM_NODES
更改下列內容:
CLUSTER_NAME:新叢集的名稱,其中包含 Arm 節點集區。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine位置。為地區叢集提供區域,或為區域叢集提供可用區。所選區域或可用區必須是所選 Arm 機器系列的可用位置。NODE_LOCATIONS:節點集區的區域,例如us-central1-a。您必須從 可用區中選擇,否則可能無法建立 Arm 機器系列或節點集區。ARM_MACHINE_TYPE:可用的 C4A 機器形狀、N4A 機器形狀或 T2A 機器形狀,例如c4a-standard-8、n4a-standard-4或t2a-standard-16。NUM_NODES:Arm 節點集區的節點數量。
強烈建議您指定權限最小的 IAM 服務帳戶,供節點使用,而非 Compute Engine 預設服務帳戶。如要瞭解如何建立僅具備必要權限的服務帳戶,請參閱「使用僅具備必要權限的服務帳戶」。
如要在 gcloud CLI 中指定自訂服務帳戶,請在指令中加入下列旗標:
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
將 SERVICE_ACCOUNT_NAME 替換為權限最少的服務帳戶名稱。
如要為叢集設定其他設定,請參閱 gcloud container clusters create 參考資料,查看叢集建立時可用的完整設定清單。
控制台
在 Google Cloud 控制台中,前往「建立 Kubernetes 叢集」頁面。
選擇提供 Arm 節點的位置。
- 在「叢集基本資訊」部分,於「位置類型」下方選擇「區域」或「地區」:
- 在下拉式選單中,選擇提供 Arm 節點的區域。
- 勾選「指定預設節點位置」方塊。選取提供 Arm 節點的區域。
如要選取 Arm 機器類型,請在「Nodes」(節點) 子部分中,依序選取「Configure node settings」(設定節點設定) >「Machine configuration」(機器設定) >「Machine family」(機器系列),然後選取「GENERAL-PURPOSE」(一般用途)。在「系列」下拉式選單中,選取「C4A」、「N4A」或「T2A」。在「機器類型」下拉式選單中,從可用選項中選擇。
- (選用) 為節點指定自訂 IAM 服務帳戶:
- 在「進階設定」頁面中,展開「安全性」部分。
- 在「Service account」(服務帳戶) 選單中,選取偏好的服務帳戶。
強烈建議您指定權限最小的 IAM 服務帳戶,供節點使用,而非 Compute Engine 預設服務帳戶。如要瞭解如何建立僅具備必要權限的服務帳戶,請參閱「使用僅具備必要權限的服務帳戶」。
點選「建立」。
Terraform
如要使用 Terraform 建立預設節點集區使用 Arm 節點的區域叢集,請參閱下列範例:
如要進一步瞭解如何使用 Terraform,請參閱「GKE 的 Terraform 支援」。
將 Arm 節點集區新增至 GKE 叢集
您可以使用 gcloud CLI、 Google Cloud 控制台或 Terraform,將新節點集區新增至 GKE Standard 叢集。
最佳做法是使用任何類型的節點建立 GKE 叢集時,為節點集區建立並使用僅具備必要權限的 Identity and Access Management (IAM) 服務帳戶,而非 Compute Engine 預設服務帳戶。
如需建立僅具備必要權限的服務帳戶的操作說明,請參閱「強化叢集安全性」。
gcloud
將 Arm 節點集區新增至現有叢集:
gcloud container node-pools create NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--node-locations NODE_LOCATIONS \
--machine-type ARM_MACHINE_TYPE \
--num-nodes NUM_NODES \
--service-account SERVICE_ACCOUNT
更改下列內容:
NODE_POOL_NAME:現有叢集的新 Arm 節點集區名稱。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine位置。為地區叢集提供區域,或為區域叢集提供可用區。CLUSTER_NAME:要新增 Arm 節點集區的叢集名稱。NODE_LOCATIONS:節點集區的區域,例如us-central1-a。您必須從 可用區中選擇,否則可能無法建立 Arm 機器系列或節點集區。ARM_MACHINE_TYPE:可用的 C4A 機器形狀、N4A 機器形狀或 T2A 機器形狀,例如c4a-standard-8、n4a-standard-4或t2a-standard-16。NUM_NODES:Arm 節點集區的節點數量。
強烈建議您指定權限最小的 IAM 服務帳戶,供節點使用,而非 Compute Engine 預設服務帳戶。如要瞭解如何建立僅具備必要權限的服務帳戶,請參閱「使用僅具備必要權限的服務帳戶」。
如要在 gcloud CLI 中指定自訂服務帳戶,請在指令中加入下列旗標:
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
將 SERVICE_ACCOUNT_NAME 替換為權限最少的服務帳戶名稱。
如要為節點集區設定其他設定,請參閱gcloud container node-pools create參考資料,查看節點集區建立時可用的完整設定清單。
控制台
如要在現有叢集中新增 Arm 節點集區,請執行下列步驟:
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
在叢集清單中,按一下您要修改的叢集名稱。
按一下 add_box「Add node pool」(新增節點集區)。
設定節點集區。
-
- 在「節點集區詳細資料」部分中,勾選「指定節點位置」方塊。
- 選取提供 Arm 節點的區域。
如要選取 Arm 機器類型,請在「Nodes」子區段中,依序選取「Configure node settings」>「Machine configuration」>「Machine family」,然後選取「GENERAL-PURPOSE」。在「系列」下拉式選單中,選取「C4A」、「N4A」或「T2A」。在「機器類型」下拉式選單中,選擇可用的選項。
按一下導覽選單中的「Security」(安全性)。
- (選用) 為節點指定自訂 IAM 服務帳戶:
- 在「進階設定」頁面中,展開「安全性」部分。
- 在「Service account」(服務帳戶) 選單中,選取偏好的服務帳戶。
強烈建議您指定權限最小的 IAM 服務帳戶,供節點使用,而非 Compute Engine 預設服務帳戶。如要瞭解如何建立僅具備必要權限的服務帳戶,請參閱「使用僅具備必要權限的服務帳戶」。
按一下「建立」即可新增節點集區。
Terraform
如要使用 Terraform 在現有叢集中新增使用 Arm 節點的節點集區,請參閱下列範例:
將 google_container_cluster.default.id 替換為叢集名稱。
如要進一步瞭解如何使用 Terraform,請參閱「GKE 的 Terraform 支援」。