在 Day 03 中,我們學到了 Kubernetes 的大腦——Control Plane(API Server, etcd, Controller Manager, Scheduler)。
如果你在實體機或自建雲(EC2 / GCE)上自建集群:
雲端託管服務(Managed Kubernetes) 徹底解決了這個問題:
AWS 與 GCP 作為雲原生領域的領頭羊,各自有著截然不同的設計哲學:
| 評比維度 | AWS EKS | GCP GKE |
|---|---|---|
| 誕生背景 | 偏向企業保守與既有 AWS 生態相容 | Kubernetes 本就是 Google 內部開源,原生血統最純正 |
| 開箱即用度 | 較為繁瑣,需手動配置 VPC CNI、EBS CSI Driver、IAM Role 等 Add-ons | 極高,預設已整合 Cloud Monitoring、Cloud Logging 與 Ingress |
| 運行模式 | Standard(自管/託管 Node Group)與 Fargate(Serverless Pod) | Standard 與 Autopilot(全託管 Serverless 模式,完全無需管 Node) |
| 網路整合 | AWS VPC CNI(Pod 直接取得真實 VPC 內部 IP) | VPC-native 集群(Pod 擁有 GCP 虛擬 VPC 次級 IP 範圍) |
| 控制平面費用 | 固定約 $0.10 USD / 小時 / 集群(約 $73 USD / 月) | 每個帳號享有第 1 個集群免費,後續集群約 $0.10 USD / 小時 |
在 K8s Pod 內部的程式碼若要讀取雲端資源(例如讀取 AWS S3 Bucket 或 GCP Cloud Storage),最危險的作法是把 AccessKey / SecretKey 寫在 Secret 裡。
現代雲端架構均採用「Pod 身分直接綁定雲端 IAM 角色」的零信任架構:
ServiceAccount 直接關聯到 AWS IAM Role。ServiceAccount 直接對應到 GCP 的 Google Service Account (GSA)。在雲端運行 Kubernetes,算力成本佔了 80% 以上。常見的三大省錢絕招包括:
| 最佳化策略 | 原理說明 | 節省效益 |
|---|---|---|
| Spot 實例(競價實例) | 將無狀態或具備容錯能力的 Deployment 排程到雲端釋出的閒置算力(Spot / Preemptible VM)。 | 最高節省 70% - 90% 算力成本 |
| Karpenter / Cluster Autoscaler | 根據 Pod 的 pending 需求,動態開關 Worker Node,避免機器空轉。 | 避免浪費閒置 Node |
| HPA + PDB (Pod Disruption Budget) | 在保證高可用的前提下精準控制副本數,並確保節點退役時服務不中斷。 | 資源利用率最大化 |
選擇 AWS EKS 的時機:
選擇 GCP GKE 的時機:
今天我們完成了從「本地玩具環境」到「企業雲端生產架構」的思維躍遷:
明天進入鐵人賽的倒數第二天 Day 29,我們將聚焦在最接地氣的實戰主題:「K8s 維運地獄:常見故障排除指南(CrashLoopBackOff、OOMKilled、Pending)」!