Alpha 版叢集是短期 Google Kubernetes Engine (GKE) 叢集,可啟用 Kubernetes Alpha 版 API 和功能,並執行即將推出的次要版本 Alpha 版。本文說明如何建立 Alpha 版叢集、啟用或停用特定功能閘道,以及在 Rapid 發布管道中執行 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替換為您複製的專案編號。 - 在「Select a role」(選取角色) 選單中,選取「Kubernetes Engine Default Node Service Account」(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 版功能閘道,啟用或停用與預設值不同的功能。
控制台
前往 Google Cloud 控制台的「Create a Kubernetes cluster」(建立 Kubernetes 叢集) 頁面。
在「叢集基本資訊」部分,完成下列操作:
選用:設定新叢集的其他設定。
選用:如要將新叢集註冊至機群,請前往「機群註冊」部分,然後按照 Google Cloud 控制台的「建立及註冊新叢集」操作說明,完成叢集註冊。
在導覽窗格的「Node Pools」(節點集區) 下方,按一下「default-pool」。
在「節點集區詳細資料」部分,完成下列步驟:
- 輸入預設節點集區的「Name」(名稱)。
- 選用:選擇 Node 版本。
- 輸入要在叢集中建立的節點數量。您必須要有可用於節點及其資源 (例如防火牆路徑) 的資源配額。
- 選用:您可以選擇停用節點自動升級功能,但建議您先詳閱停用節點自動升級功能前的注意事項,再選擇這個選項。
- 取消勾選「啟用自動升級」和「啟用自動修復」。
在導覽窗格的「節點集區」下方,按一下「節點」。
在「映像檔類型」下拉式清單中,選取節點映像檔。
選擇執行個體要使用的預設「機器設定」。每種機器類型的計費方式不同。預設機型為
e2-medium。如需機器類型的定價資訊,請參閱機器類型價目表。在「Boot disk type」(開機磁碟類型) 下拉式清單中,選取磁碟類型。
輸入開機磁碟大小。
選用:在導覽窗格的「Node Pools」(節點集區) 下方,按一下「Security」(安全性)。
- 如要為節點指定自訂 IAM 服務帳戶,請執行下列步驟:
- 在「進階設定」頁面中,展開「安全性」部分。
- 在「Service account」(服務帳戶) 選單中,選取偏好的服務帳戶。
強烈建議您指定權限最小的 IAM 服務帳戶,供節點使用,而非 Compute Engine 預設服務帳戶。如要瞭解如何建立僅具備必要權限的服務帳戶,請參閱「使用最低權限的服務帳戶」。
在導覽窗格的「Cluster」(叢集) 底下,按一下「Features」(功能)。
按一下「在這個叢集中啟用 Kubernetes Alpha 版功能」。
選取「I understand the consequences」(我瞭解上述影響) 表示您已閱讀並確認警告。
點選「建立」。
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:要啟用或停用與預設值不同的功能閘道清單。每個字串都代表功能閘的啟用或停用狀態。例如: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 版叢集」。
如要檢查叢集的 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 版叢集的問題
如果您嘗試使用無效的功能閘道,或叢集 Kubernetes 版本不支援的功能閘道建立叢集,叢集可能會在錯誤狀態下建立。
您可以在 Cloud Logging 中找到類似下列內容的訊息:
failed to set feature gates from initial flags-based config:
unrecognized feature gate: UNRECOGNIZED_FEATURE_GATE_NAME
如果發生這項錯誤,請刪除失敗的叢集。檢查功能閘道的拼字,以及是否與指定的 Kubernetes 版本相容。然後再次嘗試建立叢集。