EKS (Elastic Kubernetes Service)

Amazon EKS
- Amazon EKS = Amazon Elastic Kubernetes Service
→ Dịch vụ được quản lý (managed service) để chạy Kubernetes cluster trên AWS - Đây là một phương thức để khởi tạo các Kubernetes cluster được quản lý sẵn trên AWS
- Kubernetes là một hệ thống mã nguồn mở dùng để:
- Tự động triển khai (deployment)
- Mở rộng quy mô (scaling)
- Quản lý các ứng dụng container hóa (thường là Docker)
- EKS là một giải pháp thay thế cho ECS
→ Cùng mục tiêu là chạy container, nhưng sử dụng API và hệ sinh thái Kubernetes thay vì API riêng của ECS - EKS hỗ trợ hai loại compute:
- EC2: nếu muốn tự quản lý worker node
- Fargate: nếu muốn chạy container theo mô hình serverless (không quản lý hạ tầng)
- Use case chính:
→ Khi công ty đã dùng Kubernetes ở môi trường on-premises hoặc cloud khác (Azure, GCP) và muốn migrate workload sang AWS mà vẫn giữ nguyên hệ sinh thái Kubernetes - Kubernetes là cloud-agnostic
→ Có thể chạy trên nhiều nền tảng cloud khác nhau như Azure, GCP, on-prem,...

Node Types
Managed Node Groups
- AWS tự động tạo và quản lý các Node (EC2 instances) cho bạn.
- Các Node này là một phần của Auto Scaling Group (ASG) do EKS quản lý.
- Hỗ trợ cả On-Demand Instances và Spot Instances.
➡️ Dành cho team muốn giảm overhead quản lý hạ tầng EC2, chỉ cần tập trung vào workload.
Self-Managed Nodes
- Bạn tự tạo node EC2 và tự đăng ký (register) node vào EKS cluster.
- Có thể dùng sẵn Amazon EKS Optimized AMI (AMI được cấu hình sẵn cho EKS).
- Cũng hỗ trợ On-Demand hoặc Spot Instances.
➡️ Dành cho team cần tùy chỉnh sâu hơn về cấu hình EC2, hệ thống mạng, hoặc tích hợp đặc thù (agent, monitoring...).
AWS Fargate
- Không cần quản lý server/node.
- AWS tự động cung cấp runtime cho container khi được deploy.
➡️ Dành cho use case serverless, không cần lo về provisioning node, phù hợp với workload nhỏ, scale linh hoạt.
Data Volumes

- Cần định nghĩa
StorageClassmanifest trong EKS cluster của bạn.StorageClasslà cách Kubernetes chỉ định kiểu lưu trữ cần dùng (loại ổ đĩa, tốc độ, vùng...). - Sử dụng driver tương thích Container Storage Interface (CSI).
CSI là chuẩn hóa cho việc tích hợp storage với Kubernetes từ các bên thứ ba (EBS, EFS, FSx...). - Hỗ trợ các loại volume:
- Amazon EBS (Elastic Block Store)
Dạng block storage, thường dùng cho Pod chạy trên EC2. Dữ liệu gắn với 1 node. - Amazon EFS (Elastic File System) (Hỗ trợ Fargate)
Dạng file system dùng chung được, mount nhiều Pod. Dùng tốt trong môi trường multi-node, scale ngang. - Amazon FSx for Lustre
High-performance file system, tối ưu cho workloads HPC, AI/ML, big data. - Amazon FSx for NetApp ONTAP
Dành cho các workload yêu cầu NetApp feature như snapshot, replication... phù hợp hệ thống enterprise legacy.
- Amazon EBS (Elastic Block Store)
Bạn thấy bài này thế nào?