建立 Alpha 版叢集


本頁面說明如何建立 Google Kubernetes Engine (GKE) Alpha 版叢集,也就是啟用 Kubernetes Alpha 版 API 和功能的 GKE 叢集。使用 Alpha 版叢集時,系統預設會啟用 Kubernetes 版本提供的所有 Alpha 版功能閘道。Kubernetes 預設啟用的 Beta 版功能閘道也會啟用。您可以修改 GKE 預設值,啟用功能閘道。如要進一步瞭解特定版本可用的功能閘道,以及預設啟用的 Beta 版功能,請參閱 Kubernetes 說明文件中的「Alpha 版或 Beta 版功能的功能閘道」。

如要進一步瞭解 GKE 叢集運作方式,以及如何選擇要建立的 GKE 叢集類型,請參閱 GKE 叢集架構叢集設定選項簡介

事前準備

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

  • 啟用 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 替換為上一步的專案編號。

建立 Alpha 版叢集

您可以使用 Google Cloud 控制台或 gcloud CLI 建立 Alpha 叢集。如要建立叢集,並指定要啟用或停用的功能閘道,請使用 gcloud CLI。

控制台

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

    前往「建立 Kubernetes 叢集」

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

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

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

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

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

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

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

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

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

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

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

  11. 輸入開機磁碟大小

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

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

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

  14. 在導覽窗格的「Cluster」(叢集) 底下,按一下「Features」(功能)

  15. 按一下「在這個叢集中啟用 Kubernetes Alpha 版功能」

  16. 選取「I understand the consequences」(我瞭解上述影響),表示您已閱讀並確認警告。

  17. 點選「建立」

gcloud

執行下列指令:

gcloud container clusters create CLUSTER_NAME \
    --enable-kubernetes-alpha \
    --no-enable-autorepair \
    --no-enable-autoupgrade \
    --location CONTROL_PLANE_LOCATION [\
    --alpha-cluster-feature-gates FEATURE_GATES_LIST]

更改下列內容:

  • CLUSTER_NAME:您為叢集選擇的名稱。
  • CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。為地區叢集提供地區,或為區域叢集提供區域。
  • --cluster-version VERSION:(選用) 指定要在叢集中執行的 GKE 版本。如省略此欄位,叢集會執行「無管道」叢集建立作業預設修補程式版本,如「目前版本」表格所示。
  • FEATURE_GATES_LIST:要啟用或停用與預設值不同的功能閘道清單。每個字串都代表功能閘的啟用或停用狀態。例如:featureX=true, featureY=false。如果省略這個旗標,GKE 會使用 GKE 的預設值建立叢集,也就是啟用 Kubernetes 版本提供的所有 Alpha 版功能閘道。系統也會啟用 Kubernetes 預設啟用的 Beta 版功能閘道。如要進一步瞭解特定版本提供的功能閘道,以及預設啟用的 Beta 版功能,請參閱 Kubernetes 說明文件中的「Alpha 版或 Beta 版功能的功能閘道」。加入這個旗標後,您會修改預設由 GKE 設定的功能閘,啟用功能閘。詳情請參閱功能閘和 Alpha 版叢集

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

如要在 gcloud CLI 中指定自訂服務帳戶,請在指令中加入下列標記:

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

SERVICE_ACCOUNT_NAME 替換為具備最低權限的服務帳戶名稱。

系統會提示您確認 Alpha 測試版叢集未升級,並會在 30 天後刪除的警告:

This will create a cluster with Kubernetes alpha features enabled.
- This cluster will not be covered by the GKE SLA and should
  not be used for production workloads.
- You will not be able to upgrade the master or nodes.
- The cluster will be deleted after 30 days.

使用 kubectl 與叢集互動

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

檢查 Alpha 版叢集的 Feature Gate 狀態

使用 Alpha 測試版叢集時,您可以選擇性啟用或停用功能閘道。詳情請參閱「功能閘和 Alpha 版叢集」。

如要檢查叢集的功能閘道狀態,請參閱「檢查功能閘道狀態」。

查看 Alpha 版叢集的到期日

如要查看 Alpha 測試版叢集的到期日,請執行以下指令:

gcloud container clusters list

排解使用功能閘建立 Alpha 版叢集的問題

如果您嘗試使用無效的功能閘道,或叢集 Kubernetes 版本不支援的功能閘道建立叢集,叢集可能會在錯誤狀態下建立。

您可以在 Cloud Logging 中找到類似下列內容的訊息:

failed to set feature gates from initial flags-based config:
unrecognized feature gate: UNRECOGNIZED_FEATURE_GATE_NAME

如果發生這項錯誤,請刪除失敗的叢集。檢查功能閘的拼字,以及是否與指定的 Kubernetes 版本相容。然後再次嘗試建立叢集。

後續步驟