本頁面說明如何在 Google Kubernetes Engine (GKE) 中,建立已啟用預設功能的 Standard 可用區叢集。區域叢集在單一可用區中只有一個控制層執行個體。您可以根據可用性需求,選擇將可用區叢集的節點分散到單一或多個可用區。
本頁面適用於需要建立及設定叢集,並在 GKE 上部署工作負載的運算子、雲端架構師和開發人員。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE 使用者角色和工作」。
閱讀本頁內容前,請先熟悉叢集設定選項。
事前準備
開始之前,請務必先完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。
- 請確認您具備建立叢集的適當權限。您至少應是 Kubernetes Engine 叢集管理員。
- 如要向機群註冊新叢集,請確認您具備必要的 API 和權限。
為 GKE 設定 IAM 服務帳戶
GKE 會使用附加至節點的 IAM 服務帳戶,執行記錄和監控等系統工作。這些節點服務帳戶至少須具備專案的 Kubernetes Engine 預設節點服務帳戶 (roles/container.defaultNodeServiceAccount) 角色。根據預設,GKE 會使用Compute Engine 預設服務帳戶 (系統會在專案中自動建立) 做為節點服務帳戶。
如要將 roles/container.defaultNodeServiceAccount 角色授予 Compute Engine 預設服務帳戶,請完成下列步驟:
控制台
- 前往「歡迎」頁面:
- 在「專案編號」欄位中,按一下「複製到剪貼簿」。
- 前往「IAM」(身分與存取權管理) 頁面:
- 按一下 「授予存取權」。
- 在「New principals」(新主體) 欄位中,指定下列值:
將PROJECT_NUMBER-compute@developer.gserviceaccount.comPROJECT_NUMBER替換為您複製的專案編號。 - 在「選取角色」選單中,選取「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替換為上一個步驟中的專案編號。
建立可用區叢集
建立新的區域叢集時,您至少需要指定名稱、專案 (通常是目前的專案) 和區域 (通常是指令列工具的預設位置),其他值則使用預設設定。不過,還有更多可能的設定,本節僅說明其中一部分,且部分設定在叢集建立後就無法變更。請務必瞭解叢集建立後無法變更的設定,並在建立叢集時選擇正確的設定,以免需要重新建立。
如要查看叢集設定選項的總覽,請參閱「關於叢集設定選項」一文,如要查看完整選項清單,請參閱 gcloud container clusters create 和 Terraform google_container_cluster 參考指南。
您可以使用 gcloud CLI、Google Cloud 控制台或 Terraform 建立區域叢集。
如果您使用 Cloud Code for VS Code 開發 GKE 應用程式,請嘗試使用 Cloud Code 建立叢集。
gcloud
如要使用 gcloud CLI 建立可用區叢集,請使用下列其中一個指令。
更改下列內容:
CLUSTER_NAME:新叢集的名稱。CHANNEL:發布管道的類型,可以是rapid、regular、stable或None(已淘汰)。根據預設,叢集會註冊regular發布管道。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 可用區。VERSION:要為叢集指定的版本。COMPUTE_ZONE,COMPUTE_ZONE1,[...]:建立節點的可用區。您可以視叢集需求指定任意數量的可用區。所有可用區都必須與叢集控制層位於同一個區域,並由--location旗標指定。如果是區域叢集,--node-locations必須包含叢集的主要區域。
強烈建議您指定權限最小的 IAM 服務帳戶,供節點使用,而非 Compute Engine 預設服務帳戶。如要瞭解如何建立僅具備必要權限的服務帳戶,請參閱「使用最低權限的服務帳戶」。
如要在 gcloud CLI 中指定自訂服務帳戶,請在指令中加入下列旗標:
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com將 SERVICE_ACCOUNT_NAME 替換為僅具備必要權限的服務帳戶名稱。
使用特定發布管道:
如要使用特定發布管道建立新叢集,請執行下列指令:
gcloud container clusters create CLUSTER_NAME \
--release-channel CHANNEL \
--location CONTROL_PLANE_LOCATION \
--node-locations COMPUTE_ZONE,COMPUTE_ZONE1
使用特定版本:
如要使用特定叢集版本建立新叢集,請執行下列指令:
gcloud container clusters create CLUSTER_NAME \
--cluster-version VERSION \
--location CONTROL_PLANE_LOCATION \
--node-locations COMPUTE_ZONE,COMPUTE_ZONE1
範例
下列指令會建立名為 example-cluster 的多區域叢集,其中叢集控制層位於 us-central-a 可用區,且有三個節點位置。叢集已在regular發布管道註冊。
如果省略 --num-nodes 旗標,叢集預設會為每個區域建立三個節點。由於指定了三個可用區,這個指令會建立九個節點的叢集,us-central1-a、us-central1-b 和 us-central1-c 各有三個節點。
gcloud container clusters create example-cluster \
--location us-central1-a \
--node-locations us-central1-a,us-central1-b,us-central1-c
控制台
如要使用 Google Cloud 控制台建立可用區叢集,請執行下列工作:
前往 Google Cloud 控制台的「Create a Kubernetes cluster」(建立 Kubernetes 叢集) 頁面。
在「叢集基本資訊」部分,完成下列操作:
- 輸入叢集的名稱。
- 在「位置類型」部分,選取「區域」,然後選取叢集的可用區。
- 如要建立多區域叢集,請選取「指定預設節點位置」核取方塊,然後選擇要執行節點集區的其他區域。
選擇發布版本。您可以選擇「無管道」,但這項設定選項已遭淘汰,日後將予以移除。詳情請參閱「叢集未註冊任何發布版本」。
選用:從「版本」下拉式選單指定控制層版本。
選用:設定新叢集的其他設定。
選用:如要將新叢集註冊至機群,請前往「Advanced settings」(進階設定) 部分,然後按照 Google Cloud 控制台的「建立及註冊新叢集」操作說明,完成叢集註冊程序。
在導覽窗格的「Node Pools」(節點集區) 下方,按一下「default-pool」。
在「節點集區詳細資料」部分,完成下列步驟:
- 輸入預設「節點集區」的「名稱」。
- 選用:選擇 Node 版本。
- 輸入要在叢集中建立的節點數量。您必須具備節點及其資源 (例如防火牆路徑) 的可用資源配額。
- 選用:您可以選擇停用節點自動升級功能,但建議您先詳閱停用節點自動升級功能前的注意事項,再選擇這個選項。
在導覽窗格的「Node Pools」(節點集區) 下方,按一下「Nodes」(節點)。
從「Image type」(映像檔類型) 下拉式清單中,選取節點映像檔。
選擇要用於執行個體的預設「機器設定」。每種機型的計費方式都不同。預設機型為
e2-medium。如需機型定價資訊,請參閱機型價目表。從「Boot disk type」(開機磁碟類型) 下拉式清單中,選取磁碟類型。
輸入開機磁碟大小。
選用:在導覽窗格的「節點集區」下方,按一下「安全性」。
- 如要為節點指定自訂 IAM 服務帳戶,請執行下列步驟:
- 在「進階設定」頁面中,展開「安全性」部分。
- 在「Service account」(服務帳戶) 選單中,選取偏好的服務帳戶。
強烈建議您指定權限最小的 IAM 服務帳戶,供節點使用,而非 Compute Engine 預設服務帳戶。如要瞭解如何建立僅具備必要權限的服務帳戶,請參閱「使用最低權限的服務帳戶」。
點選「建立」。
Terraform
如要使用 Terraform 建立具有單一可用區節點集區的可用區叢集,請參閱下列範例:
如要使用 Terraform 建立具有多可用區節點集區的可用區叢集,請參閱下列範例:
如要進一步瞭解如何使用 Terraform,請參閱「GKE 的 Terraform 支援」。
使用 kubectl 與叢集互動
建立叢集之後,您必須先設定 kubectl,才能透過指令列與叢集進行互動。
叢集範本
GKE 先前支援叢集範本,這些範本已從 Google Cloud 控制台中移除,但仍可透過下列連結存取: