Amazon Elastic Kubernetes Service (Amazon EKS) 是一項 Amazon Web Services (AWS) 提供的全受管 Kubernetes 服務。它讓您能夠在 AWS 上輕鬆地運行 Kubernetes,而無需安裝、操作和維護您自己的 Kubernetes 控制平面(Master Nodes)。
簡單來說,如果你正在使用 Kubernetes 來管理你的容器化應用程式,並且希望在雲端中大規模部署、管理和擴展這些應用程式,同時又不想處理 Kubernetes 控制平面本身的複雜維護工作,那麼 Amazon EKS 就是為了解決這個問題而設計的。
主要概念與特點:
- 全受管的 Kubernetes 控制平面:
- EKS 最大的優勢在於它替您管理了 Kubernetes 的控制平面 (Control Plane)。這包括 API 伺服器、排程器、控制器管理器和 etcd(分散式鍵值儲存)等核心元件。
- AWS 負責控制平面的高可用性(在多個可用區域中運行)、擴展、修補、升級和安全加固。您無需擔心這些底層基礎設施的管理。
- 彈性的節點部署:
- EKS 叢集可以運行在兩種主要類型的資料平面節點上: 託管節點群組 (Managed Node Groups): 這是推薦的方式。AWS 會自動管理 EC2 實例的佈建、註冊、修補和終止,這些實例作為您的 Kubernetes Worker 節點。您仍然可以控制節點的類型和擴展策略。 AWS Fargate: 就像在 Amazon ECS 中一樣,Fargate 也可以與 EKS 整合。當您使用 Fargate 時,您無需佈建和管理任何底層 EC2 實例。您只需為您的 Pod(Kubernetes 最小部署單元,包含一個或多個容器)定義所需的資源,AWS 會自動為您的 Pod 提供適當的運算容量,您只需為 Pod 實際運行的時間和資源付費。這提供了極致的無伺服器體驗。 自管節點 (Self-Managed Nodes): 如果您需要對 Worker 節點有非常精細的控制,可以手動佈建和管理 EC2 實例,並將它們加入 EKS 叢集。
- 高可用性:
- EKS 控制平面在多個可用區域 (Availability Zones, AZs) 中運行,確保即使一個 AZ 發生故障,您的 Kubernetes 控制平面也能保持可用。
- 與 Kubernetes 原生相容:
- EKS 運行的是標準的 Kubernetes 版本,這意味著您現有的 Kubernetes 應用程式、工具和指令碼可以直接在 EKS 上使用,無需修改。
- 它支援所有標準的 Kubernetes API。
- 與 AWS 生態系統深度整合:
- Amazon VPC (Virtual Private Cloud): 您的 EKS 叢集和節點運行在您專屬的虛擬網路中。
- AWS IAM (Identity and Access Management): 支援精細的基於角色的存取控制 (RBAC),可以將 IAM 角色映射到 Kubernetes RBAC 角色。
- Amazon EBS: 用於為 Pod 提供持久性儲存。
- Amazon ECR (Elastic Container Registry): 用於儲存您的 Docker 容器映像檔。
- AWS Load Balancers (ALB/NLB): 可以與 Kubernetes Ingress 或 Service 物件整合,提供應用程式負載平衡。
- Amazon CloudWatch: 用於監控和日誌記錄。
- AWS PrivateLink: 支援透過私有端點連接到 EKS API 伺服器。
- 安全性:
- EKS 控制平面會自動使用 TLS 加密來保護與節點之間的通訊。
- 整合了 AWS IAM 進行身分驗證,並支援 Kubernetes 網路原則。
典型使用案例:
- 部署微服務: 作為運行和管理複雜微服務應用程式的理想平台。
- 混合雲部署: 在地端和 AWS 雲端之間無縫遷移或運行 Kubernetes 工作負載。
- 批次處理和機器學習: 運行容器化的批次作業或機器學習訓練和推理工作負載。
- Web 應用程式: 部署高可用、可擴展的 Web 應用程式。
- 持續整合/持續部署 (CI/CD): 作為自動化應用程式部署管道的核心組件。