本頁說明在 Google Kubernetes Engine (GKE) 中建立叢集時,可以進行的主要叢集設定選擇,無論您是使用Google Cloud 控制台、Google Cloud CLI 或 Terraform。您可以透過這些選項自訂各種叢集屬性和行為,以滿足您的需求,包括叢集是否可從公用網路存取,以及叢集接收版本升級的方式。
本指南中討論的許多選項在叢集建立後就無法變更。包括影響叢集可用性和網路的選項。如果需要變更這些選項,您必須建立新叢集,然後將流量遷移至該叢集,這可能會造成中斷。
由於許多叢集設定選項在叢集建立後就無法變更,因此請與貴機構的管理員和架構師、雲端架構師、網路管理員,或任何負責定義、實作及維護 GKE 和Google Cloud 架構的團隊,共同規劃及設計叢集設定。
本頁面適用於管理員和架構師,他們會根據公司策略定義 IT 解決方案和系統架構。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。
閱讀本頁面之前,請先熟悉下列內容,以及Kubernetes 基本概念:
叢集管理層級
討論叢集選項之前,請務必先瞭解叢集所需的彈性、責任和控制程度。您需要的控制層級會決定要在 GKE 中使用的作業模式,以及您需要做出的叢集設定選擇。
在 GKE 中建立叢集時,您可以使用下列其中一種作業模式:
Autopilot (建議):提供已完全佈建及管理的叢集設定。Autopilot 叢集已預先設定最佳化叢集設定,可供正式環境工作負載使用。
標準:可彈性設定叢集基礎架構。如果是使用標準模式建立的叢集,請決定生產環境工作負載所需的設定。
如要進一步瞭解這些模式和 Autopilot,請參閱 GKE 作業模式和 Autopilot 總覽。
如要詳細比較這兩種模式,請參閱「比較 GKE Standard 和 Autopilot」。
叢集設定選項
選擇作業模式後,請選取叢集所需的設定。Autopilot 叢集是由 Google Cloud 更全面地管理及設定,因此可用的設定選項比 Standard 叢集少。
所有叢集的設定選項可分為以下幾類:
- 名稱和其他中繼資料:每個叢集都必須有專案內不重複的識別名稱。您也可以視需要新增叢集說明和標籤。
- 可用性和可擴充性:指定叢集控制層和節點的執行位置,以及是否要使用多個控制層副本。所有 Autopilot 叢集都是區域叢集,也就是說,這類叢集在一個區域內的多個運算區域中,有多個控制層。 Google Cloud
- 機群成員資格:選擇是否要讓叢集成為機群成員。
- 網路:網路選項,包括叢集所在的虛擬私有雲 (VPC) 網路和子網路,以及是否要允許從公開網路存取叢集。
- 版本和升級管理:使用發布版本,在升級這個叢集的軟體時,選擇您偏好的新功能與穩定性平衡點,並設定維護期間和排除項目,選擇何時可以升級,何時不能升級。
- 安全性:包括叢集是否使用 Workload Identity Federation for GKE,以及叢集節點用於向Google Cloud驗證的服務帳戶。
- 叢集功能:為這個叢集啟用及設定其他 GKE 和Google Cloud 功能,包括備份和可觀測性。標準模式也允許您建立短期 Alpha 版叢集,試用 Alpha 版 Kubernetes 功能。
此外,標準叢集在下列類別中也有選項:
- 節點集區:指定叢集節點的詳細資料,包括節點集區、節點作業系統和節點大小。
以下各節將詳細介紹其中一些類別,特別是建立叢集後無法變更設定的選項。如需完整的設定選項清單,請參閱「設定參考資料」。
下表比較 Autopilot 和 Standard 叢集在幾個重要領域的可用選項:
叢集選項 | 模式 | |
---|---|---|
Autopilot | 標準 | |
供應情形類型 | 區域性 | 區域或可用區 |
發布版本 | Rapid、一般或穩定 | 任何頻道 |
叢集版本 | 預設或其他可用版本 | 預設或其他可用版本 |
網路路由 | 虛擬私有雲原生 | 虛擬私有雲原生或路徑導向 |
網路隔離 | 可自訂 | 可自訂 |
Kubernetes 功能 | Production | 正式版或 Alpha 版 |
叢集可用性
您可以透過 GKE 建立叢集,滿足工作負載的可用性需求,並符合預算。您可以選擇地區叢集,這類叢集在 Google Cloud 地區的多個運算區域中有多個控制層副本;也可以選擇區域叢集,這類叢集在單一區域中只有一個控制層。Autopilot 叢集一律為區域叢集。
如要瞭解如何在標準模式中選擇要建立的叢集類型,請參閱「選擇地區或區域控制層」。
叢集建立後就無法更新這些設定:區域叢集無法變成地區叢集,地區叢集也無法變成區域叢集。
如果是實際工作環境工作負載,請使用地區叢集,因為地區叢集的可用性通常高於區域叢集。如果是開發環境,請使用具有區域節點集區的區域叢集。具有區域控制層和區域節點集區的叢集,與區域叢集的費用相同。 如要進一步瞭解特定地區的注意事項,請參閱「地理位置與區域」一文。
地區性叢集
區域叢集具有多個控制層副本,分別在您指定的 Google Cloud 區域的多個可用區中執行。建立 Autopilot 或其他區域叢集時,一律需要指定區域。
只有區域標準叢集可以選擇叢集節點的運作區域。區域叢集中的節點可在多個或單一區域中執行,具體視設定的節點位置而定。根據預設,GKE 會在控制層所在區域的三個可用區中,複製每個節點集區。建立區域標準叢集或新增節點集區時,您可以指定叢集節點執行的區域,變更預設設定。所有區域都必須與控制層位於同一個區域。
請使用區域叢集執行實際工作環境工作負載,因為區域叢集的可用性高於區域叢集。
- 如要建立地區標準叢集,請參閱建立地區叢集。
- 如要建立區域 Autopilot 叢集,請參閱「建立 Autopilot 叢集」。
叢集建立後,您就無法變更區域叢集的區域。
區域叢集
區域叢集在單一區域中只有一個控制層。叢集升級或控制層所在區域服務中斷時,工作負載仍會執行。不過,在控制層恢復可用之前,您無法設定叢集、節點和工作負載。您可以根據工作負載可用性需求,選擇在單一區域或多個區域中分配區域叢集的節點。
如要建立可用區叢集,請參閱建立可用區叢集。
節點位置和分布情形
無論使用區域叢集或地區叢集,您都能精確決定節點在各個區域的位置和分布情形。您可以為日後的所有節點集區設定預設區域,也可以指派或變更現有節點集區中節點的特定區域。
單一可用區叢集
單一可用區叢集 (可以是區域或可用區叢集) 只會在位於一個可用區的節點上執行工作負載。如果該可用區發生中斷,所有工作負載都會無法使用。
區域叢集預設會建立為單一區域叢集,但您可以將這項設定更新為多區域叢集。
多區域叢集
多區域叢集 (可以是區域或可用區叢集) 會在單一區域內的多個可用區之間分配節點,提高工作負載的可用性。這樣一來,您就能在區域內的多個可用區執行工作負載。如果您在多個可用區中執行工作負載,且發生可用區中斷情形,該可用區中的工作負載會中斷,但其他可用區中的工作負載仍可使用。
將 GKE 節點分配到多個區域時,如果節點需要與位於該區域其他區域的對等互連節點通訊,可能會產生跨區域網路輸出費用。
系統預設會將區域叢集建立為多區域叢集,但您可以將這項設定更新為單一區域叢集。
叢集級別
如您在GKE 版本中瞭解到的,GKE 有兩個功能層級:所有 GKE 使用者都能使用的標準層級功能,以及企業層級功能,後者新增了許多強大功能,可處理企業規模的工作,其中許多功能都以 GKE 機群管理為基礎。
如果是 Google Cloud上的 GKE 叢集,您可以選擇是否要為每個叢集新增額外的功能層級。叢集註冊 GKE Enterprise 級別後,您就能使用所有可用的企業功能。如果您未指定叢集層級,叢集會預設使用標準層級,但部分情況除外。
選取叢集層級時,請務必瞭解下列事項:
- 許多 GKE Enterprise 功能都需要機群成員資格才能運作。您可以在建立叢集時,或建立叢集後,將叢集註冊至機群。如要在叢集使用支援機群的 GKE Enterprise 功能,建議在建立叢集時向機群註冊叢集,這樣叢集就會沿用企業功能的機群層級設定。如要進一步瞭解車隊會籍,請參閱這篇文章。
- 只有在叢集專案中啟用 GKE Enterprise (Anthos) API 時,才能為叢集啟用 Enterprise 級別。
叢集建立後,即可變更這項設定。
如要進一步瞭解 GKE Enterprise 包含的功能,包括不需要機群成員資格的功能子集,請參閱 GKE Enterprise 部署選項。
機群成員
如果貴機構使用多個叢集,您可以將叢集新增至機群 (Kubernetes 叢集的邏輯分組),簡化多叢集管理作業。建立機群後,貴機構的管理單位就能從個別叢集提升為整個叢集群組,並使用機群專用功能,例如多叢集 Ingress、 Config Sync 和 Policy Controller。
雖然您可以隨時將叢集新增至機群,但如果您已啟用 GKE Enterprise,我們強烈建議您在建立叢集時,將新的 Enterprise 級別叢集註冊至機群。這是因為這些「機群原生」叢集是根據您選擇的機群層級預設設定建立,可使用多項企業功能,且已啟用建議的記錄和指標。如要進一步瞭解這些功能,請參閱下列指南:
叢集建立後可以更新這項設定,註冊或取消註冊叢集,但我們不建議將含有即時工作負載的叢集從一個機群移至另一個機群。
如要進一步瞭解如何將叢集新增至機群,請參閱「建立機群,簡化多叢集管理作業」。
網路設定
建立 GKE 叢集時,您可以指定多項網路設定,包括叢集所在的網路、網路路由模式,以及是否要允許從公用網路存取叢集節點。
如果您不是網路管理員,請先諮詢貴機構的網路專家,再建立可供正式環境使用的叢集,因為許多選項在叢集建立後就無法變更。如果您是網路管理員,可以參閱「關於 GKE 網路」一文,進一步瞭解 GKE 網路,並在「GKE 網路最佳做法」一文中,瞭解網路選項的最佳做法。本節僅說明部分可能的網路選項。
網路和子網路
叢集所屬的虛擬私有雲 (VPC) 網路會決定該叢集可以與哪些 Compute Engine 資源進行通訊。根據預設,GKE 叢集會在專案的預設網路中建立,但如果您或管理員已建立其他網路,也可以選擇該網路。如果可以,您可以指定叢集所屬的特定虛擬私有雲子網路,否則系統會使用預設子網路。您也可以選擇指定要為 Pod 和服務使用該子網路內的特定 IP 位址範圍。
叢集建立後即無法更新這些設定。
網路區隔選項
您可以從下列兩方面著手,在叢集中自訂網路隔離:
控制層存取權:預設會啟用控制層的內部和外部端點,並停用 DNS 型端點。您可以選擇:
- 停用外部和內部端點,只使用 DNS 端點。
- 停用外部端點,即可防止外部用戶端存取。
- 啟用授權網路,控管哪些 IP 位址可連上控制層端點。
叢集網路設定:您可以選擇在叢集中啟用私人節點,完全隔離工作負載與公用網路。您可以為整個叢集啟用私人節點,也可以在節點集區 (適用於 Standard) 或工作負載 (適用於 Autopilot) 層級啟用。在節點集區或工作負載層級啟用私有節點,會覆寫叢集層級的任何節點設定。
叢集建立後,即可變更這些設定。
如要進一步瞭解網路區隔,請參閱「關於自訂網路區隔」和「自訂網路區隔」。
使用 Cloud NAT,讓 GKE Pod 存取具有公開 IP 位址的資源。Cloud NAT 可提升叢集的整體安全防護機制,因為 Pod 不會直接暴露在網際網路中,但仍可存取面向網際網路的資源。
虛擬私有雲原生叢集和路徑導向叢集
在 GKE 中,叢集可根據將流量從一個 Pod 轉送至另一個 Pod 的方式來區分叢集。使用別名 IP 位址的叢集稱為「虛擬私人雲端原生叢集」。使用 Google Cloud 路徑的叢集稱為「路徑導向叢集」。
根據預設,所有新的 GKE 叢集都會使用虛擬私有雲原生路由,這是我們建議的選項。您可以在建立叢集時變更這項設定,只以標準模式建立路徑導向叢集。叢集建立後,即無法更新這項設定。
如要進一步瞭解虛擬私有雲原生叢集及其優點,包括任何特殊需求,請參閱「虛擬私有雲原生叢集」一文。
為叢集使用虛擬私有雲原生網路模式。這是 Autopilot 叢集的預設值。
版本和升級
有了發布版本,您便能在可用功能與穩定性之間權衡,GKE 會根據您的選擇挑選合適的叢集軟體版本。建立叢集時,您可以選擇所需的發布管道。新叢集 (包括 Autopilot 和 Standard) 預設會註冊 Regular 發布版本,但您也可以在建立叢集時選擇特定版本。
Autopilot 叢集一律使用發布版本。標準叢集預設會使用發布管道,但您可以選擇不將叢集註冊至發布管道 (不過我們不建議這麼做,因為這個設定會限制您存取叢集功能)。
無論是否註冊發布管道,GKE 都會陸續自動升級所有叢集。發布版本中有新版本時,GKE 會自動升級叢集的控制層和節點。您可以透過維護期間和排除時段,控管升級的時間和範圍。
您隨時可以變更叢集的發布管道。
如要瞭解即將進行的自動升級,請參閱 GKE 版本資訊。
指定 GKE 發布版本,在可用功能與穩定性之間權衡,為叢集選用合適的版本。使用維護期間和排除時段,控管自動升級的時間和範圍。
Alpha 版功能 (僅限標準叢集)
Kubernetes 的新功能會視其開發狀態,列為 Alpha 版、測試版或穩定版。在大部分情況下,GKE 叢集會含有列為 Beta 版或穩定版的 Kubernetes 功能。
如要試用尚未準備好用於正式環境的最新功能,請使用特殊的 GKE Alpha 版叢集。Alpha 版叢集會啟用所有 Kubernetes Alpha 版 API (有時稱為功能閘道)。您可以使用 Alpha 版叢集,搶先測試及驗證 Kubernetes 功能。實際工作環境工作負載不支援 Alpha 版叢集,且無法升級或新增至發布管道,並會在 30 天內失效。
Autopilot 叢集無法使用 Alpha 版功能。
如要建立 Alpha 版叢集,請參閱建立 Alpha 版叢集。
安全性設定
GKE 提供多項安全性設定,您可以在建立叢集時指定。包括加密設定、二進位授權等安全功能、要用於叢集節點的服務帳戶 (下一節會詳細說明),以及叢集是否使用 Workload Identity Federation for GKE。
與其他設定一樣,您應先諮詢專家同事 (在本例中為貴機構的安全專家),再建立可供正式環境使用的叢集。如要進一步瞭解 GKE 安全性,請參閱安全性總覽和強化叢集安全性。
節點的服務帳戶
GKE 會使用附加至節點的 IAM 服務帳戶,執行記錄和監控等系統工作。這些節點服務帳戶至少必須具備專案的「Kubernetes Engine 預設節點服務帳戶」(roles/container.defaultNodeServiceAccount
) 角色。根據預設,GKE 會使用專案中自動建立的 Compute Engine 預設服務帳戶做為節點服務帳戶。
如果貴機構強制執行 iam.automaticIamGrantsForDefaultServiceAccounts
機構政策限制,專案中的預設 Compute Engine 服務帳戶可能不會自動取得 GKE 的必要權限。
如果您在專案或機構中將 Compute Engine 預設服務帳戶用於其他函式,該服務帳戶的權限可能超出 GKE 的需求,進而導致安全風險。
建立 Autopilot 模式叢集或 Standard 模式節點集區後,就無法變更服務帳戶。
節點集區設定 (僅限標準叢集)
如您在叢集管理總覽和 GKE 運作模式中瞭解,如果叢集使用 Autopilot,您就不必擔心節點設定,因為 GKE 會為您設定節點。Autopilot 叢集節點完全由 GKE 管理,且都使用相同的節點作業系統 (OS)。
如果您選擇建立標準叢集,可以在建立叢集時指定多個節點選項,包括:
- 您要使用的節點集區的名稱、數量、大小和位置;節點集區是叢集內共用一般設定的節點群組。
- 您要用於新節點的節點 OS。
- 是否要使用臨時現成 VM 做為節點。
- 您要用於節點的 Compute Engine 機器類型。
- 您要用於節點的服務帳戶,如安全性設定所述。
叢集建立後,您可以變更部分叢集節點集區設定,但所有標準叢集都必須至少有一個節點集區。建立標準叢集時,如果未指定節點數量和機器類型,叢集的預設節點集區會包含叢集各區域中的三個節點,並使用預設節點映像檔 cos_containerd
和一般用途機器類型。
如要進一步瞭解節點集區設定,請參閱「關於節點集區」和「新增及管理節點集區」。
設定參考資料
如需可能的設定選項完整清單,請參閱下列參考指南:
gcloud container clusters create-auto
: Autopilot 叢集的 Google Cloud CLI 參考資料gcloud container clusters create
:標準叢集的 Google Cloud CLI 參考資料google_container_cluster
: Terraform 參考資料
後續步驟
- 進一步瞭解 GKE 叢集架構中的叢集架構
- 如要並列比較 Standard 和 Autopilot 叢集,請參閱「比較 GKE Standard 和 Autopilot」。
- 開始建立叢集: