EKS auto mode
介紹 EKS Auto mode 與傳統 EKS 手動模式的差異、與 Fargate/EC2 node 的比較,以及 EC2 + Fargate 混合架構的取捨。
Introduction
EKS Auto mode 是 AWS 在 2024 年推出的新功能,全名是 EKS Cluster Auto mode。它的目的是「更自動化地管理 Kubernetes cluster」,讓用戶不用再自己處理控制面 (control plane)、節點群組 (node group) 的部署和管理。
重點整理:
- 全託管控制面:你不用再自己建 worker node,Auto mode 會全自動處理。
- 節點管理自動化:不需要手動建立 Node Group,AWS 幫你自動擴展和管理。
- 資源最佳化:配合 Fargate 或 EC2,根據應用程式需求自動調整資源。
- 內建最佳實踐:安全、可觀測性、自動更新等都會內建好,減少手動設定的麻煩。
適用場景:
- 快速啟動 Kubernetes 環境,不想花時間設計基礎架構的人。
- 減少維運成本,尤其是小型團隊、POC、邊緣應用。
- 配合 AWS 雲原生服務做簡化部署。
對比傳統 EKS (manual mode):
| 功能 | 傳統 EKS (手動模式) | EKS Auto mode |
|---|---|---|
| Control Plane 管理 | 手動建立與更新 | AWS 自動管理 |
| Node Group | 自己建立與維護 | AWS 自動建與擴展 |
| 升級與修補 | 自行規劃 | 自動處理 |
| 運維負擔 | 較高 | 較低 |
| 彈性與自訂 | 高 | 較低,但簡單 |
注意:
Auto mode 是「省心但彈性低」的選擇,很多低層設定像是節點類型、AMI 自訂、CNI 插件設定等可能沒辦法像傳統模式一樣自訂。
適合快速交付專案或開發測試環境,不一定適合 production critical workload。
Auto mode 跟 Fargate / EC2 node 差異
| 特徵 | Auto mode + Fargate | Auto mode + EC2 node | 傳統 EKS EC2 node |
|---|---|---|---|
| 節點型態 | Serverless Pod | EC2 Instance node | EC2 Instance node |
| 適用場景 | 短時間 job,輕量服務 | 穩定運行的 workload | 高度自訂、複雜環境 |
| 啟動速度 | 極快 | 快 | 取決於 AMI 與設定 |
| 彈性配置 | 低 | 中 | 高 |
| 成本效率 | 小規模時高效,大規模可能貴 | 大規模相對划算 | 視情況而定 |
| 維護負擔 | 最低 | 低 | 中高 |
| 運行時選擇 | AWS Fargate | AWS EC2 | AWS EC2,自訂 |
Auto mode 可以混合用 Fargate 和 EC2 node,AWS 會自動安排 workload。
📊 Classic mode + Fargate vs Auto mode 架構圖
-
Classic mode + Fargate
[ AWS EKS Control Plane ] | -------------------------------------------------- | | [ EC2 Managed Node Group ] [ Fargate Profile (Serverless) ] | | [Pod-A] [Pod-B] (常駐服務) [Pod-C] [Pod-D] (Job / 測試 / 短命服務) # 關鍵:你自己管理 EC2 Node Group。 # Fargate Profile 是你定義 selector,控制哪些 Pod 用 Fargate。 -
Auto mode
[ AWS Auto mode Control Plane ] | [ AWS 自動管理的 Compute Plane (EC2 + Fargate) ] | [Pod-A] [Pod-B] [Pod-C] (所有 workload AWS 自動分配 EC2 or Fargate) # 關鍵:AWS 自動幫你選擇 EC2 instance 或 Fargate。 # 你無需定義 node group,也不用建 Fargate profile。 -
Comparison
項目 Classic mode + Fargate Auto mode Control plane 管理 AWS 管 AWS 管 Node Group 管理 你自己管理 AWS 全自動 Fargate Profile 定義 你自己定義 namespace/label AWS 自動選擇 彈性 & 可控性 高 低(交給 AWS) 運維負擔 中等(EC2 Node 要自己管) 低(AWS 全代管) 適用場景 混合架構、legacy-friendly 全新專案、快速交付環境
🎯 EC2 + Fargate 混合架構的優勢
優點:
- 適合「短命、非持久化」的 workload,比如 job runner、batch task。
- 可以減少 node 管理負擔。
- 成本可控:小規模用 Fargate 反而省錢,省下 Idle node 的成本。
注意事項:
- Fargate 不能跑 DaemonSet(像 node-exporter、log agent)。
- Fargate Pod 無法掛 EBS volume,只能用 EFS 或 ephemeral storage。
- Pod 啟動速度比 EC2 node group 稍慢。
- Fargate Profile 需要提前規劃好 namespace / label selector。
可用來「平衡成本、彈性與維運負擔」,同時兼顧 Legacy 需求 + 雲原生 Serverless。
適用的典型場景:
| 場景 | 說明 | 使用原因 |
|---|---|---|
| Legacy + 新服務混合環境 | 你的老系統需要跑 DaemonSet / host-level volume,新服務想要 serverless。 | ✅ EC2 跑 legacy,Fargate 跑新微服務。 |
| 節點成本最佳化 | 長時間運行的 workload 放 EC2(可用 spot 節省成本),間歇性工作負載跑 Fargate。 | ✅ 控制 idle cost,峰值自動用 Fargate 撐。 |
| 季節性/間歇性流量爆發 | EC2 跑 baseline 負載,流量爆炸時 Fargate 自動補上。 | ✅ 不用提前多備 node group。 |
| CI/CD pipeline 動態測試環境 | 開發 / 測試分支自動 deploy Fargate,節省測試環境成本。 | ✅ 短時間自動建測試環境,跑完就自動銷毀。 |
| 小規模多集群策略 | 每個小專案不用準備 node group,統一跑在 Fargate。大型服務自己 EC2 node group。 | ✅ 管理集中又不失彈性。 |
管理上比較麻煩的原因
- 需要管理兩套執行層:
- Node group 要 patch、升級。
- Fargate Profile 要維護 selector、policy。
- Monitoring & Logging 要拉通兩邊。
這個架構是 trade-off,「比純 EC2 好維運,比純 Auto mode 更自由,但需要多一點 initial complexity」