建立 Alpha 版叢集

Alpha 版叢集是短期 Google Kubernetes Engine (GKE) 叢集,可啟用 Kubernetes Alpha 版 API 和功能,並執行即將推出的子版本 Alpha 版。本文說明如何建立 Alpha 版叢集、啟用或停用特定功能閘道,以及在搶鮮發布版發布管道中執行 Alpha 版修補程式。Alpha 版叢集適用於想試用即將推出的 Kubernetes 功能和版本的早期採用者和平台管理員。

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

事前準備

開始之前,請務必先完成下列工作:

  • 啟用 Google Kubernetes Engine API。
  • 啟用 Google Kubernetes Engine API
  • 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行 gcloud components update 指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。

必要的角色

如要取得建立 Alpha 版叢集及與其互動所需的權限,請要求管理員授予您專案的 Kubernetes Engine 叢集管理員 (roles/container.clusterAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

設定 GKE 的 IAM 服務帳戶

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

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

控制台

  1. 前往「歡迎」頁面:

    前往「歡迎」頁面

  2. 在「專案編號」欄位中,按一下「複製到剪貼簿」。
  3. 前往「IAM」頁面:

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

  4. 按一下 「授予存取權」。
  5. 在「New principals」(新主體) 欄位中,指定下列值:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    將 PROJECT_NUMBER 替換為您複製的專案編號。
  6. 在「選取角色」選單中,選取「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,原因如下:

  • 您可以將叢集註冊至「快速」發布管道,建議用於 Alpha 叢集。
  • 您可以指定 Alpha 版或 Beta 版 feature gate,啟用或停用與預設值不同的功能。

控制台

  1. 前往 Google Cloud 控制台的「Create a Kubernetes cluster」(建立 Kubernetes 叢集) 頁面。

    前往「建立 Kubernetes 叢集」

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

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

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

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

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

  5. 在導覽窗格的「Node Pools」(節點集區) 下方,點選「default-pool」。

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

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

  8. 在「Image type」(映像檔類型) 下拉式選單中,選取節點映像檔。

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

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

  11. 輸入開機磁碟大小。

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

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

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

  14. 在導覽窗格中,按一下「Advanced settings」(進階設定)。

  15. 在「Kubernetes Alpha 版功能」列中,按一下 「編輯設定」。

  16. 選取「在這個叢集中啟用 Kubernetes Alpha 版功能」。

  17. 詳閱警告訊息,然後選取「我瞭解上述影響」。

  18. 按一下 [儲存]。

  19. 點選「建立」。

gcloud

執行下列指令:

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

更改下列內容:

  • CLUSTER_NAME:您為叢集選擇的名稱。
  • CHANNEL:發布管道類型。這個值必須是下列其中一個:

    • rapid:註冊快速發布管道,這是 Alpha 叢集的建議管道。
    • regular:加入一般發布管道。
    • stable:註冊穩定版發布管道。
    • none:不要註冊發布管道。這個選項已淘汰,日後將會移除。
  • CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。如果是區域叢集,請提供區域;如果是可用區叢集,請提供可用區。

  • --cluster-version VERSION:(選用) 指定要在叢集中執行的 GKE 版本。如果省略,叢集會針對所選發布管道執行叢集建立的預設修補程式版本,如「目前版本」表格所示。

  • FEATURE_GATES_LIST:要啟用或停用的 feature gate 清單,與預設值不同。每個字串都代表功能閘的啟用或停用狀態。例如:featureX=true, featureY=false。如果省略這個標記,GKE 會使用 GKE 的預設值建立叢集,也就是啟用 Kubernetes 版本提供的所有 Alpha 版功能閘道。系統也會啟用 Kubernetes 預設啟用的 Beta 版 feature gate。如要進一步瞭解特定版本可用的 feature gate,以及預設啟用的 Beta 版功能,請參閱 Kubernetes 說明文件中的「Alpha 或 Beta 版功能的 feature gate」。加入這個旗標後,您會修改預設由 GKE 設定的功能閘,啟用功能閘。詳情請參閱「Feature gate 和 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 版叢集時,您可以選擇性啟用或停用功能閘道。詳情請參閱「feature gate 和 Alpha 版叢集」。

如要查看叢集的 feature gate 狀態,請參閱「查看 feature gate 狀態」。

在 Alpha 版叢集執行 Alpha 版修補程式版本

在快速發布管道註冊的 Alpha 版叢集,可以執行即將推出的 Kubernetes 子版本 Alpha 修補程式版本。這些 Alpha 版可讓您搶先測試下一個子版本的功能和變更,GKE 搶鮮版叢集全面支援該子版本前,您就能先試用。

如要在 Alpha 版叢集中找出並執行 Alpha 版修補程式版本,請按照下列步驟操作:

  1. 在搶鮮版中找出可用的 Alpha 版:

    gcloud container get-server-config \
        --flatten="channels" --filter="channels.channel=RAPID" \
        --location=LOCATION \
        --format="yaml(channels.channel,channels.previewVersions)"
    

    將 LOCATION 替換為您打算建立 Alpha 叢集的區域,例如 us-central1。

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

    channels:
      channel: RAPID
      previewVersions:
      - 1.37.0-gke.1173000+preview
    

    如果輸出內容為空白,表示該區域沒有 Alpha 版。請嘗試其他區域,或查看搶鮮版版本資訊瞭解版本資訊。

  2. 建立 Alpha 叢集:

    gcloud container clusters create CLUSTER_NAME \
        --release-channel=rapid \
        --enable-kubernetes-alpha \
        --no-enable-autorepair \
        --no-enable-autoupgrade \
        --location=CONTROL_PLANE_LOCATION \
        --cluster-version=ALPHA_VERSION
    

    更改下列內容:

    • CLUSTER_NAME:Alpha 版叢集的名稱。
    • CONTROL_PLANE_LOCATION:叢集控制層所在的區域或可用區。請使用您在上一步檢查 Alpha 版可用性的相同區域,或該區域中的可用區。
    • ALPHA_VERSION:要在叢集中執行的特定 Alpha 修補程式版本,來自上一個步驟的輸出內容。

查看 Alpha 版叢集的到期時間

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

gcloud container clusters list

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

如果您嘗試使用無效的 feature gate,或叢集 Kubernetes 版本不支援的 feature gate 建立叢集,叢集可能會建立失敗。

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

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

如果遇到這項錯誤,請刪除失敗的叢集。請檢查拼字,以及 feature gate 與指定 Kubernetes 版本的相容性。然後再次嘗試建立叢集。

後續步驟