本頁面說明 Google Kubernetes Engine (GKE) Autopilot 模式,這是 GKE 叢集的受管理模式。這份指南提供您所需資訊,協助您瞭解 Autopilot 模式的優點和注意事項。內容涵蓋規劃及建立 Autopilot 叢集、部署及管理應用程式、設定網路、確保安全性,以及調度工作負載等主題。
本頁內容適用於管理員、架構師和作業人員,協助您評估 GKE Autopilot 模式是否符合容器化工作負載的作業需求,進而做出明智決策。如要進一步瞭解 Google Cloud 內容中提及的常見角色和範例工作,請參閱常見的 GKE Enterprise 使用者角色和工作。
閱讀本頁面之前,建議先參閱「比較 GKE Autopilot 和 Standard」。
什麼是 Autopilot?
GKE Autopilot 是 GKE 的作業模式,可讓 Google 管理叢集設定,包括節點、資源調度、安全性和其他預先設定。Autopilot 叢集經過最佳化調整,適用於多數正式環境工作負載,並根據您的 Kubernetes 資訊清單佈建運算資源。簡化設定程序,遵循 GKE 最佳做法和建議,設置叢集和工作負載,並提升擴充性及安全性。如需內建設定清單,請參閱「Autopilot 和 Standard 比較表」。
使用 Autopilot 模式,享受全代管的 Kubernetes 服務。
定價
在大多數情況下,您只需要為工作負載要求使用的 CPU、記憶體和儲存空間支付費用。由於節點是由 GKE 管理,因此系統不會針對節點上未使用的容量向您收費。請注意,在特定運算類別上執行 Pod 時,這個定價模式會有例外情況,因為 Pod 可以使用節點虛擬機器 (VM) 的完整資源容量。
您無須支付系統 Pod、作業系統成本或未排程工作負載的費用。如需詳細定價資訊,請參閱「Autopilot 定價」。
優點
- 專注於應用程式:Google 會管理基礎架構,因此您可以專心建構及部署應用程式。
- 安全性:叢集預設會採用強化設定,並啟用許多安全性設定。GKE 會在安全性修補程式推出時,自動套用至節點,並遵守您設定的維護時間表。
- 定價:自動駕駛定價模式可簡化帳單預測和歸因。
- 節點管理:Google 會管理工作站節點,因此您不必建立新節點來配合工作負載,也不必設定自動升級和修復功能。
- 擴充:當工作負載的負載量偏高,且您新增更多 Pod 來因應流量 (例如使用 Kubernetes 水平 Pod 自動調度資源功能時),GKE 會自動為這些 Pod 佈建新節點,並視需要自動擴充現有節點的資源。
- 排程:Autopilot 會為您管理 Pod 裝箱,因此您不必考慮每個節點上執行的 Pod 數量。您可以使用 Kubernetes 機制 (例如親和性和 Pod 散布拓撲) 進一步控制 Pod 的放置位置。
- 資源管理:如果您部署工作負載時未設定 CPU 和記憶體等資源值,Autopilot 會自動設定預先設定的預設值,並在工作負載層級修改資源要求。
- 網路:Autopilot 預設會啟用部分網路安全功能,例如確保所有 Pod 網路流量都通過虛擬私有雲防火牆規則,即使流量要傳送至叢集中的其他 Pod 也是如此。
- 版本管理:所有 Autopilot 叢集都會註冊 GKE 發布版本,確保控制層和節點執行該版本中最新的合格版本。
- 受管理彈性:如果工作負載有特定的硬體或資源需求 (例如高 CPU 或記憶體),Autopilot 提供預先設定的運算類別,專為這些工作負載而建構。您可以在部署作業中要求運算類別,不必手動建立以自訂機器類型和硬體為基礎的新節點。您也可以選取 GPU,加快批次或 AI/機器學習應用程式等工作負載的處理速度。
- 降低作業複雜度:Autopilot 可減少平台管理負擔,不必持續監控節點、調度資源和排定作業。
Autopilot 隨附 SLA,涵蓋控制層和 Pod 使用的運算容量。
規劃 Autopilot 叢集
建立叢集前,請先規劃及設計 Google Cloud 架構。在 Autopilot 中,您可以在工作負載規格中要求硬體。GKE 會佈建及管理對應的基礎架構,以執行這些工作負載。舉例來說,如果您執行機器學習工作負載,可以要求硬體加速器。如果您開發 Android 應用程式,請要求 Arm CPU。
根據工作負載規模,規劃並要求 Google Cloud 專案或機構的配額。只有在專案有足夠的硬體配額時,GKE 才能為工作負載佈建基礎架構。
規劃時請考慮下列因素:
- 預估叢集大小和規模
- 工作負載類型
- 叢集版面配置和使用方式
- 網路配置和設定
- 安全性設定
- 叢集管理與維護
- 工作負載部署與管理
- 記錄和監控
下列各節提供相關資訊和實用資源,協助您考量這些因素。
網路
建立採用公用網路的 Autopilot 叢集時,叢集中的工作負載可以相互通訊,也能與網際網路通訊。這是預設的網路模式。 Google Cloud 和 Kubernetes 提供各種額外的網路功能,您可以根據使用案例運用這些功能,例如具有私人網路的叢集。
Kubernetes 和雲端中的網路相當複雜,開始變更Google Cloud 為您設定的預設值之前,請務必熟悉網路基本概念。下表提供相關資源,可協助您根據用途進一步瞭解 GKE 網路:
用途 | 資源 |
---|---|
瞭解 Kubernetes 和 GKE 中的網路運作方式 |
瞭解網路模型後,請考量貴機構的網路和網路安全需求。選擇符合這些條件的 GKE 和 Google Cloud 網路功能。 |
規劃 GKE 網路設定 | 建議您瞭解 GKE 的網路配額,例如每個服務的端點數和 API 要求限制。下列資源可協助您規劃網路設定的特定層面:
|
公開工作負載 |
|
在多個叢集中執行高可用性連線服務 | 使用多叢集服務 (MCS)。 |
平衡連入流量 |
|
設定叢集網路安全性 | |
監控 Kubernetes 網路流量 | 根據預設,Autopilot 會使用 GKE Dataplane V2 收集指標和觀測資料。
|
資源調度
如要大規模有效運作平台,必須審慎規劃和考量。您必須考量設計的擴充性,也就是叢集在服務等級目標 (SLO) 範圍內成長的能力。如需平台管理員和開發人員的詳細指南,請參閱「建立可擴充叢集的指南」。
此外,您也應考量 GKE 配額和限制,尤其是打算執行可能包含數千個 Pod 的大型叢集時。
調度 Autopilot 工作負載資源
在 Autopilot 模式中,GKE 會根據叢集中的 Pod 數量自動調整節點。如果叢集沒有執行中的工作負載,Autopilot 可以自動將叢集縮減至零個節點。叢集縮減後,叢集中沒有任何節點,因此系統 Pod 無法排程。請放心,這是正常情況。 在大多數新建立的 Autopilot 叢集中,您可能會發現部署的第一個工作負載需要較長的時間才能排定。這是因為新的 Autopilot 叢集在建立時沒有任何可用節點,且會等到您部署工作負載後,才會佈建額外節點。
如要自動調度叢集中的 Pod 數量,請使用 Kubernetes 水平 Pod 自動調度資源等機制,根據內建的 CPU 和記憶體指標,或 Cloud Monitoring 的自訂指標調度 Pod。如要瞭解如何根據各種指標設定資源調度,請參閱「根據指標調整 Pod 自動調度資源功能」。
安全性
Autopilot 叢集預設會啟用並套用安全防護最佳做法和設定,包括「強化叢集安全性」和「GKE 安全性總覽」中的許多建議。
如要進一步瞭解 Autopilot 強化措施,以及如何實作特定安全防護規定,請參閱「Autopilot 安全防護措施」。
建立叢集
規劃環境並瞭解需求後,請建立 Autopilot 叢集。新的 Autopilot 叢集是具有可公開存取 IP 位址的區域叢集。每個叢集都已套用基準強化措施,以及自動調度資源和其他功能。如要查看預先設定功能的完整清單,請參閱「比較 GKE Autopilot 和 Standard」。
如要建立無法存取外部 IP 位址的叢集,請設定網路隔離。
在 Autopilot 上部署工作負載
如要在執行中的 Autopilot 叢集部署工作負載,請編寫 Kubernetes 資訊清單,並套用至叢集。根據預設,Autopilot 叢集經過最佳化調整,適用於多數實際工作負載。
如要透過 Google Cloud 控制台的互動式指南部署及公開應用程式,請按一下「Guide me」(逐步引導):
部分工作負載可能會有專用硬體需求,例如需要硬體加速器的機器學習工作負載,或是需要 Arm 架構的行動應用程式測試。Autopilot 預先定義了運算類別,Google Cloud 已設定為執行有特殊運算需求的工作負載。如有更具體的硬體需求,可以定義自己的自訂運算類別。部署這些特殊工作負載時,請在資訊清單中要求運算類別。Autopilot 會自動佈建由專用機器支援的節點、管理排程,以及分配硬體。
下表列出一些常見需求,並提供建議做法:
用途 | 資源 |
---|---|
在叢集擴展時控制個別節點屬性 | 部署自訂運算類別,並在工作負載資訊清單中要求該類別。詳情請參閱「關於自訂運算類別」。 |
執行 Arm 工作負載 | 在資訊清單中要求 Scale-Out 計算類別和 arm64 架構。如需操作說明,請參閱「在 Arm 架構上部署 Autopilot 工作負載」。 |
執行加速 AI/機器學習工作負載 | 在資訊清單中要求 GPU。如需操作說明,請參閱在 Autopilot 中部署 GPU 工作負載。 |
執行需要大量運算或記憶體容量的工作負載 | 要求 Balanced 運算類別。如需操作說明,請參閱「為 Autopilot Pod 選擇運算類別」。 |
執行需要更有效率地水平調度 CPU 容量,以及每個核心單一執行緒運算的工作負載 | 要求 Scale-Out 運算類別。如需操作說明,請參閱「為 Autopilot Pod 選擇運算類別」。 |
以較低的費用執行容錯工作負載 (例如批次工作) | 在資訊清單中指定 Spot Pods。如需操作說明,請參閱「在 Spot Pod 中以較低的費用執行容錯工作負載」。您可以在 Spot Pod 中使用任何運算類別或硬體設定。 |
執行需要盡量減少中斷的工作負載,例如遊戲伺服器或工作佇列 | 在 Pod 規格中指定 cluster-autoscaler.kubernetes.io/safe-to-evict=false 註解。Pod 最多可避免因節點自動升級或縮減事件而遭到驅逐七天。如需操作說明,請參閱「延長 Autopilot Pod 的執行時間」。 |
如果節點上 Pod 資源要求的總和有可用且未使用的資源,允許工作負載超出要求。 | 將資源 limits 設為高於 requests ,或不設定資源限制。
如需操作說明,請參閱「在 GKE 中設定 Pod 爆量」。 |
Autopilot 可讓您為工作負載要求 CPU、記憶體和臨時儲存空間資源。允許的範圍取決於您要在預設的通用運算平台,還是運算類別上執行 Pod。
如要瞭解預設容器資源要求和允許的資源範圍,請參閱「Autopilot 中的資源要求」。
工作負載區隔
Autopilot 叢集支援使用節點選取器和節點親和性,設定工作負載區隔。如果您需要指示 GKE 將工作負載放置在符合特定條件的節點上 (例如自訂節點標籤),工作負載分離功能就非常實用。舉例來說,您可以指示 GKE 將遊戲伺服器 Pod 排定在具有 game-server
標籤的節點上,並避免在這些節點上排定任何其他 Pod。
詳情請參閱「在 GKE 中設定工作負載區隔」。
使用區域拓撲在特定區域中排程 Pod
如需將 Pod 放置在特定 Google Cloud 區域,例如存取區域 Compute Engine 永久磁碟上的資訊,請參閱「將 GKE Pod 放置在特定區域」。
Pod 相依性和反相依性
使用 Pod 相依性和反相依性,將 Pod 共置於單一節點上,或讓某些 Pod 避開其他 Pod。Pod 相依性和反相依性會指示 Kubernetes 根據特定拓撲網域 (例如特定區域或可用區) 中節點上執行的 Pod 標籤,做出排程決策。舉例來說,您可以指示 GKE 避免在相同節點上排定前端 Pod 和其他前端 Pod,以提高可用性,防範服務中斷。
如需操作說明和更多詳細資料,請參閱「Pod 親和性和反親和性」。
在 GKE 中,您可以在 topologyKey
中使用 Pod 相依性和反相依性,並搭配下列標籤:
topology.kubernetes.io/zone
kubernetes.io/hostname
Pod 拓撲散布限制
如要提高工作負載的可用性,請在 Kubernetes 擴充或縮減 Pod 數量時,設定 Pod 拓撲散布限制。這項設定可控管 Kubernetes 如何在拓撲網域 (例如區域) 內的節點間分散 Pod。舉例來說,您可以指示 Kubernetes 在 us-central1
地區的三個 Google Cloud 區域中,各放置特定數量的遊戲伺服器工作階段 Pod。
如需範例、更多詳細資料和操作說明,請參閱「Pod 拓撲散布限制」。
管理及監控 Autopilot 叢集
在 Autopilot 中,GKE 會自動管理叢集升級作業,以及控制層和工作站節點的維護作業。Autopilot 叢集也內建功能,可供您監控叢集和工作負載。
升級 GKE 版本
所有 Autopilot 叢集都會註冊 GKE發布版本。在發布版本中,GKE 會管理叢集的 Kubernetes 版本,並根據發布版本,在功能可用性和版本穩定性之間取得平衡。根據預設,Autopilot 叢集會註冊「Regular」發布版本,但您可以選取符合穩定性和功能需求的發布版本。如要進一步瞭解發布版本,請參閱「關於發布版本」。
GKE 會自動啟動升級作業、監控進度,並在發生問題時暫停作業。您可以透過下列方式手動控管升級程序:
- 如要控管 GKE 可執行自動升級的時間,請建立維護期間。舉例來說,您可以將維護時間設為多人遊戲每週重設的前一晚,這樣玩家就能在重設時登入,不會受到干擾。
- 如要控管 GKE 無法在特定時間範圍內啟動自動升級功能,請使用維護作業排除時段。舉例來說,你可以為黑色星期五和網購星期一的特惠活動設定維護排除時間,讓顧客購物時不會遇到問題。
- 如要在自動升級開始前取得新版本,請手動升級控制層。GKE 會隨著時間,將節點版本與控制層版本進行比對。
- 如要取得僅適用於較新發布管道的修補程式版本,請參閱「從較新管道執行修補程式版本」。舉例來說,您可能需要特定修補程式版本,才能因應最近揭露的安全漏洞。
監控 Autopilot 叢集
Autopilot 叢集已啟用 Cloud Logging、Cloud Monitoring 和 Google Cloud Managed Service for Prometheus。
Autopilot 叢集會自動收集下列類型的記錄和指標,並遵循 Google 遙測資料收集最佳做法:
Cloud Logging 的記錄
- 系統記錄
- 工作負載記錄
- 管理員活動稽核記錄
- 資料存取稽核記錄
Cloud Monitoring 指標
- 系統指標
- 工作負載指標 (來自 Managed Service for Prometheus)
啟用記錄和監控功能不需要額外設定。 下表說明如何根據需求與收集到的遙測資料互動:
用途 | 資源 |
---|---|
瞭解及存取 GKE 記錄檔 |
|
觀察 GKE 叢集的效能 | 有效監控叢集效能,有助於最佳化叢集和工作負載的營運成本。 |
監控叢集的安全防護機制 | 使用安全防護機制資訊主頁,稽核執行中的工作負載是否符合 GKE 最佳做法,掃描容器作業系統和語言套件中的安全漏洞,並取得可行的緩解建議。詳情請參閱「安全防護機制資訊主頁簡介」。 |
疑難排解
如需疑難排解步驟,請參閱「排解 Autopilot 叢集問題」。