在 Gemini 協助下微調 GKE 服務


本頁說明如何使用 Gemini Cloud Assist (適用於 Google Cloud的 AI 協作工具),微調 Google Kubernetes Engine (GKE) 部署作業,進而提升效能和可靠性。Gemini 輔助功能包括建議、程式碼生成和疑難排解。

Gemini Cloud Assist 的優點眾多,包括協助您完成下列事項:

  • 降低成本:找出閒置資源、調整部署大小,並最佳化自動調度資源設定,盡量減少不必要的支出。
  • 提升穩定性和可靠性:主動找出潛在問題,例如版本偏差或缺少 Pod 中斷預算,以防止停機並確保應用程式復原能力。
  • 最佳化 AI/機器學習工作負載:協助您在 GKE 上部署、管理及最佳化 AI/機器學習工作負載。
  • 簡化疑難排解程序:快速分析記錄並找出錯誤的根本原因,節省時間和精力。

本頁內容適用於現有 GKE 使用者,以及佈建和設定雲端資源,並部署應用程式和服務的運算符和開發人員。如要進一步瞭解內容中提及的常見角色和範例工作,請參閱「常見的 GKE 使用者角色和工作」。 Google Cloud

瞭解 Gemini for Google Cloud 如何使用您的資料,以及使用時機

費用

  • Gemini:預先發布期間,使用 Gemini Cloud Assist 不會產生費用。

  • GKE:在 GKE 中使用 Gemini Cloud Assist 不會產生額外費用。

事前準備

如要開始在 GKE 中使用 Gemini,請先完成下列先決條件。

本指南假設您有 GKE 叢集,最好還執行了一些部署作業。

詢問 Gemini Cloud Assist

您可以透過 Google Cloud 控制台叫用 Gemini Cloud Assist。Gemini Cloud Assist 可讓您使用自然語言提示,快速有效地取得工作協助。

如要從 GKE 頁面開啟 Cloud Assist,請按照下列步驟操作:

  1. 在 Google Cloud 控制台的專案選取器頁面中,選取Google Cloud 已啟用 Gemini Cloud Assist 的專案。

    前往專案選取器

  2. 在 Google Cloud 控制台中,前往 Kubernetes Engine 控制台的特定頁面。

    舉例來說,前往「Kubernetes Engine 總覽」頁面。

    前往 Kubernetes Engine 總覽

    如要詢問特定資源,請先前往相關頁面。舉例來說,在「叢集」頁面,Gemini Cloud Assist 可以提供叢集管理、叢集健康狀態監控和叢集問題排解方面的建議。在特定管理中心頁面使用 Gemini,有助於為問題提供脈絡資訊。 Google Cloud Gemini 接著會使用這個脈絡和您所處的整體專案,生成更貼近需求且準確的協助內容。

  3. 如要開啟 Gemini Cloud Assist 窗格,請點選工具列中的火花「開啟或關閉 Gemini AI 對話」

  4. 如果系統提示您同意條款,請按一下「接受」

  5. 在 Gemini 窗格中輸入提示詞。請參閱下一節的範例工作流程,瞭解如何使用 Gemini 進行疑難排解。

如要進一步瞭解如何在 Google Cloud 控制台中使用 Gemini,請參閱「使用 Gemini Cloud Assist」。

使用 Gemini 進行疑難排解的範例

Gemini 可以協助您排解 GKE 服務的問題。

  1. 前往 Google Cloud 控制台的「Workloads」(工作負載) 頁面。

    前往「Workloads」(工作負載)

  2. 選取要排解問題的工作負載。

  3. 按一下 [Logs] (記錄) 分頁標籤。

  4. 在工具列中,按一下「spark Open or close Gemini AI chat」

  5. 輸入提示,說明你遇到的問題。例如:「我的 accounts-db 資料庫應用程式延遲時間過長」。Gemini 可能會要求提供更多脈絡資訊,例如資料庫類型、影響範圍 (例如延遲時間影響的作業和使用者)。

  6. Gemini 接著會提供指引,協助您自行分析記錄,並提供疑難排解建議。

  7. 請查看建議並按照指示操作,解決問題。

Gemini Cloud Assist 提示範例

本節會列舉一些實際用途,並建議您可以嘗試向 Gemini 提出的提示。您收到的實際回覆可能是一般回覆,也可能根據Google Cloud 環境的獨特狀態提供個人化回覆,並建議可執行的動作。回覆內容可能包含 Google Cloud 控制台連結 Google Cloud ,方便您查看及管理 Cloud 資源,以及相關說明文件連結,方便您進一步瞭解詳情。

降低成本

下表說明可協助降低費用的提示。

提示 回覆類型
「如何節省 GKE 叢集的費用,又不犧牲效能?」
  • 建議:找出並建議移除使用率偏低的資源,例如閒置叢集。
  • 啟用或調整自動調度機制方面的建議。
  • 建議:透過設定審查 (例如記錄保留政策) 找出潛在節省金額。
「我想升級 my-docker-cluster GKE 叢集,想推薦商家嗎? 建議實作特定 Kubernetes 設定和最佳做法,例如:
  • 為 Pod 定義資源要求和限制,確保資源分配可預測。
  • 使用專屬命名空間來隔離工作負載。
  • 實作 Pod disruption budget,確保在自願中斷期間 (例如節點維護或升級),至少有一定數量的 Pod 副本可用。
  • 排定維護期間,管理預計中斷情形,並盡量減少非預期停機時間。
  • 在發布版本中註冊叢集,管理 GKE 版本升級作業。
my-docker-cluster叢集在幾週後會出現大量流量尖峰,想推薦商家嗎?
  • 使用水平 Pod 自動調度器,調整應用程式 Pod 數量的策略。
  • 使用垂直 Pod 自動調度器,增加每個 Pod 的資源 (CPU、記憶體) 的策略。
「哪些 GKE 工作負載未啟用 HPA?」 未啟用水平 Pod 自動調度功能的工作負載清單。

提高可靠性和穩定性

下表說明可使用的提示,有助於提升 GKE 工作負載的穩定性和可靠性。

提示 回覆類型
「如何提升 GKE 叢集的穩定性,避免發生停機問題?」
  • 識別叢集中的版本差異,並建議採取哪些行動,以維持 Kubernetes 版本相容性。
  • 提供實作資源隔離的建議。
  • 提供設定 Pod 中斷預算的建議,確保在預先規劃的維護或升級期間,執行中的 Pod 副本數量不會低於下限。
「Show me how I can move my workloads from the Default namespace on my-cluster.」(請說明如何將工作負載從 my-cluster 上的 Default 命名空間遷移出來)。 如要執行下列操作,請按照下列步驟操作:
  • 準備目標叢集。
  • 將應用程式和資料遷移至目標叢集。
  • 以最短停機時間切換服務。
「如何確保執行中的 Pod 具有高可用性?」
  • 詳細程序,指定使用 podAntiAffinity 的 Deployment,以及多個副本以確保備援。
  • 設定資源要求和限制,以及使用水平 Pod 自動調度資源的建議。

針對 AI/機器學習工作負載最佳化 GKE

下表說明可使用的提示,協助您在 GKE 上部署、管理及最佳化 AI/機器學習工作負載。

提示 回覆類型
「在 GKE 上使用 GPU 執行大規模分散式 TensorFlow 訓練時,建議使用哪些節點集區設定?」 以下是最佳化 GKE 上分散式 TensorFlow 機器學習訓練作業的建議:
  • 選取合適的 GPU 和機器類型。
  • 啟用自動調度資源功能。
  • 正在最佳化網路連線。
  • 運用分散式訓練架構。
  • 實施節省成本的措施。
「如何在 GKE 上使用 GPU 進行訓練?」 設定叢集和工作負載以使用 GPU 的步驟和注意事項總覽。
「Give me an example of deploying a model serving container on GKE.」(請提供在 GKE 上部署模型服務容器的範例)。 範例:使用範例程式碼在 GKE 上部署模型服務容器。範例可能會納入最佳做法,並確保可擴充性。
「我應該追蹤哪些指標,才能評估推論的負載平衡設定成效?」 指標清單,例如流量分配、延遲時間、錯誤率、CPU 和記憶體使用率,可深入瞭解負載平衡設定的效能和健康狀態。

簡化疑難排解程序

下表說明可使用的提示,協助您快速分析記錄檔並找出錯誤的根本原因,節省時間和精力。

提示 回覆類型
「這個錯誤是什麼意思?
Readiness probe failed: Get "https://10…./abcd": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
說明 kubelet 無法在定義的逾時期間內執行容器的就緒探查,並提供可能原因和疑難排解動作。
「Why is my deployment nettools crashing with error ping: socket: Operation not permitted?」(為什麼我的部署作業 nettools 會因錯誤 ping: socket: Operation not permitted 而當機?) 說明 ping 指令需要 CAP_NET_RAW 安全性環境功能,且基於安全考量,Kubernetes 中的容器預設會以一組受限的功能執行。
「如果 Pod 發生 Cannot schedule pods: No preemption victims found for incoming pod. 錯誤而無法排程,代表什麼意思?」 說明 Kubernetes 中 Pod 的排程和搶占機制。列出疑難排解步驟,說明為何找不到搶占受害者。

後續步驟