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 版叢集的限制。
必要的角色
如要取得建立 Alpha 版叢集及與其互動所需的權限,請要求管理員授予您專案的 Kubernetes Engine 叢集管理員 (roles/container.clusterAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
設定 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替換為上一個步驟中的專案編號。
建立 Alpha 叢集
您可以使用 Google Cloud 控制台或 gcloud CLI 建立 Alpha 版叢集。建議您使用 gcloud CLI,原因如下:
- 您可以將叢集註冊至「快速」發布管道,建議用於 Alpha 叢集。
您可以指定 Alpha 版或 Beta 版 feature gate,啟用或停用與預設值不同的功能。
控制台
前往 Google Cloud 控制台的「Create a Kubernetes cluster」(建立 Kubernetes 叢集) 頁面。
在「叢集基本資訊」部分,完成下列操作:
選用:設定新叢集的其他設定。
選用:如要將新叢集註冊至機群,請前往「Advanced settings」(進階設定) 部分,然後按照 Google Cloud 控制台的「建立及註冊新叢集」操作說明,完成叢集註冊程序。
在導覽窗格的「Node Pools」(節點集區) 下方,點選「default-pool」。
在「節點集區詳細資料」部分,完成下列步驟:
- 輸入預設節點集區的名稱。
- 選用:選擇「Node version」(節點版本)。
- 輸入要在叢集中建立的「節點數量」。您必須具備節點及其資源 (例如防火牆路徑) 的可用資源配額。
- 選用:您可以選擇停用節點自動升級功能,但建議您先詳閱停用節點自動升級功能前的注意事項,再選擇這個選項。
- 取消勾選「Enable auto-upgrade」(啟用自動升級功能) 和「Enable auto-repair」(啟用自動修復功能)。
在導覽窗格的「Node Pools」(節點集區) 下方,按一下「Nodes」(節點)。
在「Image type」(映像檔類型) 下拉式選單中,選取節點映像檔。
選擇要用於執行個體的預設機器設定。每種機器類型的計費方式不同。預設機型為
e2-medium。如需機型定價資訊,請參閱機型價目表。從「Boot disk type」(開機磁碟類型) 下拉式清單中,選取磁碟類型。
輸入開機磁碟大小。
選用:在導覽窗格的「節點集區」下方,按一下「安全性」。
- 您可以選擇為節點指定自訂 IAM 服務帳戶:
- 在「進階設定」頁面中,展開「安全性」部分。
- 在「Service account」(服務帳戶) 選單中,選取偏好的服務帳戶。
強烈建議您指定權限最小的 IAM 服務帳戶,供節點使用,而非 Compute Engine 預設服務帳戶。如要瞭解如何建立僅具備必要權限的服務帳戶,請參閱「使用最低權限的服務帳戶」。
在導覽窗格中,按一下「Advanced settings」(進階設定)。
在「Kubernetes Alpha 版功能」列中,按一下 edit「編輯設定」。
選取「在這個叢集中啟用 Kubernetes Alpha 版功能」。
詳閱警告訊息,然後選取「我瞭解上述影響」。
按一下 [儲存]。
點選「建立」。
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 版修補程式版本,請按照下列步驟操作:
在搶鮮版中找出可用的 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 版。請嘗試其他區域,或查看搶鮮版版本資訊瞭解版本資訊。
建立 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 版本的相容性。然後再次嘗試建立叢集。