建立可用區叢集


本頁面說明如何在 Google Kubernetes Engine (GKE) 中,使用已啟用的預設功能建立標準區域叢集。區域叢集在單一區域中只有一個控制層執行個體。您可以根據可用性需求,選擇將區域叢集的節點分散到單一或多個區域。

最佳做法: 使用地區叢集執行實際工作環境工作負載,因為地區叢集的可用性高於區域叢集。在地區叢集中,控制層會在一個地區中跨多個區域複製。

本頁面適用於需要建立及設定叢集,並在 GKE 上部署工作負載的作業人員、雲端架構師和開發人員。如要進一步瞭解我們在 Google Cloud內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。

閱讀本頁面之前,請先熟悉叢集設定選項

事前準備

開始之前,請確認你已完成下列工作:

  • 啟用 Google Kubernetes Engine API。
  • 啟用 Google Kubernetes Engine API
  • 如要使用 Google Cloud CLI 執行這項工作,請安裝初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行 gcloud components update,取得最新版本。

為 GKE 設定 IAM 服務帳戶

GKE 會使用附加至節點的 IAM 服務帳戶,執行記錄和監控等系統工作。這些節點服務帳戶至少必須具備專案的「Kubernetes Engine 預設節點服務帳戶」(roles/container.defaultNodeServiceAccount) 角色。根據預設,GKE 會使用專案中自動建立的 Compute Engine 預設服務帳戶做為節點服務帳戶。

如要將 roles/container.defaultNodeServiceAccount 角色授予 Compute Engine 預設服務帳戶,請完成下列步驟:

主控台

  1. 前往「歡迎」頁面:

    前往「歡迎」

  2. 在「專案編號」欄位中,按一下「複製到剪貼簿」
  3. 前往「IAM」(身分與存取權管理)IAM 頁面:

    前往「身分與存取權管理」頁面

  4. 按一下「授予存取權」
  5. 在「New principals」(新增主體) 欄位中,指定下列值:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    PROJECT_NUMBER 替換為您複製的專案編號。
  6. 在「Select a role」(選取角色) 選單中,選取「Kubernetes Engine Default Node Service Account」(Kubernetes Engine 預設節點服務帳戶) 角色。
  7. 按一下 [儲存]

gcloud

  1. 找出 Google Cloud 專案編號:
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    PROJECT_ID 替換為您的專案 ID。

    輸出結果會與下列內容相似:

    12345678901
    
  2. 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發布版本的類型,可以是 rapidregularstableNone。除非指定下列至少一個旗標:--cluster-version--release-channel--no-enable-autoupgrade--no-enable-autorepair,否則叢集預設會註冊 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

為未在發布版本中註冊的叢集使用預設版本:

如要使用未註冊發布管道的叢集預設版本建立新叢集,您不需要指定叢集版本,但必須將發布管道設為 None

gcloud container clusters create CLUSTER_NAME \
    --release-channel None \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

示例

下列指令會建立名為 example-cluster多區域叢集,其中叢集控制層位於 us-central-a 區域,且有三個節點位置。叢集已註冊 regular 發布管道。

省略 --num-nodes 標記時,叢集建立的每個區域節點預設數量為三個。因為指定了三個區域,此指令會建立具有九個節點的叢集,在 us-central1-aus-central1-bus-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 控制台建立可用區叢集,請執行下列工作:

  1. 在 Google Cloud 控制台中,前往「建立 Kubernetes 叢集」頁面。

    前往「建立 Kubernetes 叢集」

  2. 在「叢集基本資訊」部分,完成下列操作:

    1. 輸入叢集的「名稱」
    2. 在「位置類型」中選取「區域」,然後為叢集選取可用區
    3. 如要建立多區域叢集,請選取「指定預設節點位置」核取方塊,然後選擇要執行節點集區的其他區域。

    4. 選擇發布版本。 您可以視需要從下拉式清單中選取「沒有管道」, 但建議您先查看已註冊和未註冊發布管道的叢集比較結果, 再選擇這個選項。如果叢集未加入發布版本,GKE 會自動以穩定版升級叢集。

    5. 選用:從「版本」下拉式清單中指定控制層版本。

  3. 選用:設定新叢集的其他設定。

  4. 選用 (適用於 GKE Enterprise):如要將新叢集註冊至機群,請前往「機群註冊」部分,然後按照 Google Cloud 控制台的「建立及註冊新叢集」操作說明,完成叢集註冊程序。

  5. 在導覽窗格的「節點集區」下方,按一下「default-pool」

  6. 在「節點集區詳細資料」部分,完成下列步驟:

    1. 輸入預設節點集區的「Name」(名稱)
    2. 選用:選擇 Node 版本
    3. 輸入要在叢集中建立的節點數量。您必須要有可用於節點及其資源 (例如防火牆路徑) 的資源配額
    4. 選用:您可以選擇停用節點自動升級功能,但建議您先詳閱停用節點自動升級功能前的注意事項,再選擇這個選項。
  7. 在導覽窗格的「節點集區」下方,按一下「節點」

  8. 在「映像檔類型」下拉式清單中,選取節點映像檔

  9. 選擇執行個體要使用的預設機器設定。每種機器類型的計費方式不同。預設機器類型為 e2-medium。如需機器類型的定價資訊,請參閱機器類型價目表

  10. 在「Boot disk type」(開機磁碟類型) 下拉式清單中,選取磁碟類型

  11. 輸入開機磁碟大小

  12. 選用:在導覽窗格的「Node Pools」(節點集區) 下方,按一下「Security」(安全性)

  13. (選用) 為節點指定自訂 IAM 服務帳戶:
    1. 在「進階設定」頁面中,展開「安全性」部分。
    2. 在「服務帳戶」選單中,選取偏好的服務帳戶。

    強烈建議您指定權限最小的 IAM 服務帳戶,供節點使用,不要使用 Compute Engine 預設服務帳戶。如要瞭解如何建立僅具備必要權限的服務帳戶,請參閱「使用最低權限的服務帳戶」。

  14. 點選「建立」

Terraform

如要使用 Terraform 建立可用區叢集和單一可用區節點集區,請參閱下列範例:

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-single-zone"
  location           = "us-central1-a"
  initial_node_count = 1
}

如要使用 Terraform 建立具有多區域節點集區的可用區叢集,請參閱下列範例:

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-multi-zone"
  location           = "us-central1-a"
  node_locations     = ["us-central1-b", "us-central1-c"]
  initial_node_count = 2
}

如要進一步瞭解如何使用 Terraform,請參閱「GKE 的 Terraform 支援」。

使用 kubectl 與叢集互動

建立叢集之後,您必須先設定 kubectl,才能透過指令列與叢集進行互動。

叢集範本

GKE 先前支援叢集範本,這些範本已從 Google Cloud 控制台中移除,但仍可透過下列連結存取:

後續步驟

歡迎試用

如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 GKE 的成效。新客戶可以獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。

免費試用 GKE