GKE Autopilot 總覽


Autopilot 是 Google Kubernetes Engine (GKE) 的代管作業模式。本頁面說明 Autopilot 模式的優點,並提供叢集規劃、部署工作負載,以及設定網路和安全性的相關資訊。管理員、架構師和營運人員可以根據這項資訊做出明智決策,評估 GKE Autopilot 模式是否符合容器化工作負載的運作需求。

如要進一步瞭解 GKE 作業模式之間的差異,請參閱「比較 GKE Autopilot 和 Standard」。

什麼是 Autopilot?

GKE Autopilot 是 GKE 的作業模式,可讓 Google 管理基礎架構設定,包括節點、資源調度、安全性和其他預先設定。Autopilot 模式經過最佳化調整,可執行大部分的實際工作負載,並根據您的 Kubernetes 資訊清單佈建運算資源。

您可以在 Autopilot 模式下執行整個叢集,讓叢集和所有工作負載遵循 GKE 最佳做法和建議,以利資源調度、安全性、升級和節點設定。您也可以在 GKE Standard 叢集中,以 Autopilot 模式執行特定工作負載。如果您仍需手動控管基礎架構,這個選項可讓您在環境中使用 Autopilot。詳情請參閱「 關於 GKE Standard 中的 Autopilot 模式工作負載」。

優點

  • 專注於應用程式:Google 會管理基礎架構,因此您可以專心建構及部署應用程式。
  • 安全性:Autopilot 叢集預設會採用強化設定,並啟用許多安全性設定。GKE 會在安全性修補程式推出時,自動套用至節點,並遵守您設定的任何維護時間表。
  • 定價:Autopilot 定價模式可簡化帳單預測和歸因。
  • 節點管理:Google 會管理工作站節點,因此您不必建立新節點來配合工作負載,也不必設定自動升級和修復功能。
  • 調度:當工作負載負擔過重,您新增更多 Pod 來因應流量時 (例如使用 Kubernetes 水平 Pod 自動調度資源功能),GKE 會自動為這些 Pod 佈建新節點,並視需要自動擴充現有節點的資源。
  • 排程:Autopilot 會為您管理 Pod 裝箱,因此您不必考慮每個節點上執行的 Pod 數量。您可以使用 Kubernetes 機制 (例如親和性和 Pod 散布拓撲) 進一步控制 Pod 的放置位置。
  • 資源管理:如果您部署工作負載時未設定 CPU 和記憶體等資源值,Autopilot 會自動設定預先設定的預設值,並在工作負載層級修改資源要求。
  • 網路:Autopilot 預設會啟用部分網路安全功能,例如將所有 Pod 網路流量傳送至 Virtual Private Cloud 防火牆規則,即使流量要傳送至叢集中的其他 Pod 也是如此。
  • 版本管理:所有 Autopilot 叢集都會註冊 GKE 發布版本,因此控制層和節點會執行該版本中最新的合格版本。
  • 受管理彈性:如果工作負載有特定硬體或資源需求 (例如 GPU),您可以在 ComputeClasses 中定義這些需求。在工作負載中要求 ComputeClass 時,GKE 會根據您的需求為 Pod 設定節點。您不需要手動設定節點或個別工作負載的硬體。
  • 降低作業複雜度:Autopilot 可免除持續監控節點、資源調度和排程作業的需求,進而減少平台管理負擔。

Autopilot 隨附 SLA,涵蓋控制層和 Pod 使用的運算容量。

關於 Autopilot 容器最佳化運算平台

在 GKE 1.32.3-gke.1927002 以上版本中,Autopilot 包含專為工作負載設計的容器最佳化運算平台。這個平台適用於大多數不需要特定硬體的一般用途工作負載,例如網路伺服器和中等強度的批次工作。

容器最佳化運算平台使用 GKE Autopilot 節點,這些節點可在執行時動態調整大小,並以 CPU 的一小部分為基礎向上擴充,盡量減少中斷。隨著工作負載擴展,這項動態調整大小功能可大幅縮短佈建新容量所需的時間。為提升調度速度,GKE 也會維護預先佈建的運算容量集區,以便在資源需求增加時,自動為工作負載分配資源。

容器最佳化運算平台具備下列優點:

  • 運算容量符合工作負載需求:Autopilot 會根據 Pod 數量和資源耗用量等因素,動態調整容器最佳化運算平台的運算容量。因此,叢集中的運算容量會符合工作負載的需求。
  • 快速調整大小:在擴充事件期間,GKE 可以動態調整現有節點大小,以容納更多 Pod 或增加資源消耗量。這項動態容量佈建功能通常表示新 Pod 無須等待新節點啟動。

您可以透過下列方式使用 Autopilot 容器最佳化運算平台:

  • Autopilot 叢集:如果 Pod 未選取特定硬體,預設會使用這個運算平台。
  • Standard 叢集:您可以選取其中一個內建的 Autopilot ComputeClass,將特定 Pod 放在容器最佳化運算平台。

定價

Autopilot 定價會根據 Pod 使用的硬體類型,採用不同模式,如下所示:

  • 一般用途 Autopilot Pod:下列類型的 Pod 會採用以 Pod 為準的計費模式,並歸類為一般用途 Pod

    • 在 Autopilot 叢集或標準叢集中,於容器最佳化運算平台上執行的 Pod。
    • 在 Autopilot 叢集中選取 BalancedScale-Out 內建 ComputeClass 的 Pod。

    詳情請參閱 Google Kubernetes Engine 定價中的「一般用途 Autopilot 工作負載」一節。

  • 選取特定硬體的 Autopilot 工作負載:選取特定硬體的 Pod (例如 Compute Engine 機器系列或硬體加速器) 會採用以節點為準的計費模式。在這個模型中,您需要支付基礎硬體費用和節點管理費。

    詳情請參閱 Google Kubernetes Engine 定價的「選取特定硬體的 Autopilot 工作負載」一節。

Autopilot 叢集和工作負載

GKE 可讓您為整個叢集使用 Autopilot 模式,或為 Standard 叢集中的特定工作負載使用 Autopilot 模式。建議使用 Autopilot 叢集,因為整個叢集預設會採用 Google 的最佳做法。

不過,部分機構需要手動控制或彈性,因此必須使用 GKE Standard 叢集。在這些情況下,您仍可為 Standard 叢集中的特定工作負載使用 Autopilot,在工作負載層級享有許多 Autopilot 功能。

以下各節說明如何規劃及建立 Autopilot 叢集。如果您有 Standard 叢集,並想在 Autopilot 模式中執行部分工作負載,請參閱「關於 GKE Standard 中的 Autopilot 模式工作負載」。

規劃 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 要求限制。下列資源可協助您規劃網路設定的特定層面:

公開工作負載
  • 如要將應用程式公開發布到網際網路,請使用服務,將在一組 Pod 中執行的應用程式公開發布為單一網路服務。
  • 如要設定工作負載,以安全的方式與 API 進行通訊,請使用 Workload Identity Federation for GKE。 Google Cloud
在多個叢集中執行高可用性連線服務 使用多叢集服務 (MCS)
平衡連入流量
設定叢集網路安全性
  • 如要控管或禁止從公開網際網路存取叢集,請自訂網路隔離設定自訂網路隔離設定
  • 如要將控制層存取權限制在特定 IP 位址範圍,請使用控制層授權網路
  • 如要控管 Pod 流量,請使用網路政策。網路政策強制執行功能適用於 GKE Dataplane V2,Autopilot 叢集預設會啟用這項功能。如需操作說明,請參閱網路政策
監控 Kubernetes 網路流量

根據預設,Autopilot 會使用 GKE Dataplane V2 取得指標和觀測資料。

資源調度

如要大規模有效運作平台,必須審慎規劃和考量。您必須考量設計的擴充性,也就是叢集在服務等級目標 (SLO) 範圍內成長的能力。如需平台管理員和開發人員的詳細指南,請參閱「建立可擴充叢集的指南」。

此外,您也應考量 GKE 配額和限制,尤其是打算執行可能包含數千個 Pod 的大型叢集時。

在 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 工作負載,讓 GKE 管理調度資源、有效率地排程,以及底層基礎架構。您可以將容器最佳化運算平台用於一般用途工作負載,也可以使用 ComputeClass 為工作負載選取特定硬體。

您可以透過下列其中一種方式執行這些 Autopilot 工作負載:

如要透過 Google Cloud 控制台的互動式指南,在 Autopilot 叢集中部署及公開應用程式,請按一下「Guide me」(逐步引導)

逐步引導

下表列出一些常見需求,並提供建議做法:

用途 資源
在叢集擴展時控制個別節點屬性 建立自訂 ComputeClass,並在工作負載資訊清單中要求該類別。詳情請參閱「關於自訂 ComputeClass」。
在 Standard 叢集中執行 Autopilot 工作負載 在 Standard 叢集中使用 Autopilot ComputeClass。詳情請參閱「關於 GKE Standard 中的 Autopilot 模式工作負載」。
執行 Arm 工作負載 在 ComputeClass 或工作負載資訊清單中,要求具有 Arm CPU 的機器系列。詳情請參閱「關於自訂 ComputeClass」。
執行加速 AI/機器學習工作負載 在 ComputeClass 或工作負載資訊清單中要求 GPU。如要進一步瞭解如何在工作負載資訊清單中要求 GPU,請參閱「在 Autopilot 中部署 GPU 工作負載」。
以較低的費用執行容錯工作負載,例如批次工作。

您可以在 Spot Pod 中使用任何 ComputeClass 或硬體設定。

執行需要盡量減少中斷的工作負載,例如遊戲伺服器或工作佇列 在 Autopilot 叢集中,請在 Pod 規格中指定 cluster-autoscaler.kubernetes.io/safe-to-evict=false 註解。Pod 最多可避免因節點自動升級或縮減事件而遭到驅逐七天。詳情請參閱「延長 Autopilot Pod 的執行時間」。
如果節點上 Pod 資源要求的總和有可用且未使用的資源,允許工作負載超出要求。 將資源 limits 設為高於 requests, 或不設定資源限制。 詳情請參閱「在 GKE 中設定 Pod 爆量」。

Autopilot 可讓您為工作負載要求 CPU、記憶體和臨時儲存空間資源。允許的範圍取決於您要在 Autopilot 容器最佳化運算平台或特定硬體上執行 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 指標

  • 系統指標
  • 工作負載指標 (來自 Google Cloud Managed Service for Prometheus)

啟用記錄和監控功能不需要額外設定。 下表說明如何根據需求與收集到的遙測資料互動:

用途 資源
瞭解及存取 GKE 記錄檔
  • 如要瞭解系統自動收集的記錄類型,請參閱「收集的記錄」一文。
  • 如要存取記錄並在 Google Cloud 控制台中使用 Cloud Logging 使用者介面,請參閱「查看 GKE 記錄」。
  • 如需可用於篩選 Kubernetes 系統和工作負載記錄的範例查詢,請參閱與 Kubernetes 相關的查詢
  • 如需可用於篩選管理員活動和資料存取稽核記錄的查詢範例,請參閱 GKE 稽核記錄資訊
  • 如要為多用戶端環境設定記錄,例如團隊在單一 GKE 叢集中有特定命名空間,但每個團隊都有自己的 Google Cloud 專案,請參閱「GKE 多用戶端記錄」。
觀察 GKE 叢集的效能

有效監控叢集效能,有助於盡量降低叢集和工作負載的營運成本。

  • 使用 Monitoring 中的 GKE 資訊主頁,以視覺化方式呈現叢集狀態。詳情請參閱「觀察 GKE 叢集」。
  • GKE 也會在 Google Cloud 控制台中提供「可觀測性」資訊主頁。詳情請參閱「查看可觀測性指標」。
監控叢集的安全防護機制 使用安全防護機制資訊主頁,稽核執行中的工作負載是否符合 GKE 最佳做法,掃描容器作業系統和語言套件中的安全漏洞,並取得可行的緩解建議。詳情請參閱「安全防護機制資訊主頁簡介」。

疑難排解

如需疑難排解步驟,請參閱「排解 Autopilot 叢集問題」。

後續步驟