跳至主要內容
ESC
Study Jam:雲端基礎實作 — 第 10/10 篇

管理 Kubernetes 叢集

管理 Kubernetes 叢集

課程概述

部署應用只是第一步,維運才是持久戰。這堂課我們來談 GKE 叢集的日常管理,包含監控、日誌、自動擴展、節點池管理,還有安全上的一些最佳實踐。

Kubernetes 維運回饋迴路:指標、日誌與告警觀察服務;HPA 增減 Pod、VPA 調整單 Pod 資源、Cluster Autoscaler 增減節點;維護時依中斷預算汰換節點,Workload Identity 與 Namespace RBAC 隔離存取

三層 Autoscaling 解不同問題:HPA 改 Pod 數、VPA 改單一 Pod 的 Request、Cluster Autoscaler 在 Pod 排不下時改 Node 數。觀測訊號驅動調整;維護視窗與 PodDisruptionBudget 保住可用副本, Workload Identity 免金鑰存取雲端服務,Namespace/RBAC 再切開團隊權限。

你將學到

  • 使用 Cloud Monitoring 監控 GKE 叢集與工作負載
  • 使用 Cloud Logging 收集與查詢容器日誌
  • 配置 Horizontal Pod Autoscaler(HPA)與 Cluster Autoscaler
  • 管理節點池升級與維護視窗
  • 實作 Kubernetes RBAC 權限控制

核心概念

三層自動擴展

層級機制觸發條件設定
PodHPACPU/記憶體超過閾值kubectl autoscale
PodVPA資源 request 不合適VerticalPodAutoscaler CRD
NodeCluster AutoscalerPod 無法排程--enable-autoscaling
# 啟用 HPA(CPU 達 70% 時擴展,2-10 個 Pod)
kubectl autoscale deployment web-app --cpu-percent=70 --min=2 --max=10

# 啟用 Cluster Autoscaler
gcloud container clusters update my-cluster \
  --enable-autoscaling --min-nodes=1 --max-nodes=10 \
  --zone us-central1-a
HPA 回饋迴路:Pods 的 CPU、Memory 或自訂指標經 Metrics Pipeline 送到 HPA,比較目前值與目標值後更新 Deployment 的 Desired Replicas,並以 Stabilization Window 避免頻繁縮減

HPA 反覆量測指標、計算 Desired Replicas,再交給 Deployment 改變 Pod 數;低負載縮減前使用 Stabilization Window 避免抖動。HPA 本身不會增加 Node,Pod 排不下時才需要 Cluster Autoscaler。

Cloud Monitoring for GKE

GKE 跟 Cloud Monitoring 是整合好的,可以分好幾層來看:

  • Infrastructure:節點 CPU、記憶體、磁碟使用率
  • Workloads:Pod 重啟次數、容器資源使用
  • Services:請求延遲、錯誤率、吞吐量

建議設定的告警:

  • Pod 重啟次數 > 5 次/小時
  • 節點 CPU 使用率 > 85%
  • Pod 處於非 Ready 狀態超過 5 分鐘
同一個故障可能同時產生多層告警;先從使用者可感知的服務訊號定範圍,再下鑽 Pod 與 Node。每條處置路徑最後都要回到原告警與 SLO 驗證。

節點池管理

# 建立新節點池
gcloud container node-pools create high-mem-pool \
  --cluster=my-cluster --machine-type=n2-highmem-4 --num-nodes=2

# 設定維護視窗(每週日凌晨 2-6 點)
gcloud container clusters update my-cluster \
  --maintenance-window-start=2026-01-01T02:00:00Z \
  --maintenance-window-end=2026-01-01T06:00:00Z \
  --maintenance-window-recurrence="FREQ=WEEKLY;BYDAY=SU"
GKE 節點池安全升級:在維護視窗先建立 Surge Node,再 Cordon 舊節點、Drain Pod 並經 PDB 檢查,Pod 重新排程且 Readiness 通過後才移除舊 Node

Surge Upgrade 先增加容量,再逐台 Cordon 與 Drain;PDB 若判斷驅逐會超出可用性預算,就暫停 等待。替代 Pod 到新 Node 並通過 Readiness 後,舊 Node 才能安全移除。

實作重點

  • 開啟 GKE 的 Workload Identity 取代 service account key,更安全
  • 使用 namespaces 隔離不同團隊或環境的工作負載
  • 定期執行 gcloud container clusters upgrade 保持版本更新
  • 設定 PodDisruptionBudget 確保升級時服務不中斷

Skill Badge 指引

Lab 連結Manage Kubernetes in Google Cloud — 完成此 lab 可獲得 Skill Badge

延伸學習

Study Jam:雲端基礎實作 — 10/10 完成 查看系列全覽 →

留言討論

徽章解鎖!