Kubernetes là gì?
Kubernetes (K8s) là một nền tảng Container Orchestration mã nguồn mở, được thiết kế để tự động hóa:
- Triển khai container.
- Quản lý vòng đời ứng dụng.
- Tự động scale.
- Quản lý networking và load balancing.
Kubernetes ngày nay đã trở thành tiêu chuẩn công nghiệp trong việc quản lý containers ở quy mô lớn.
Amazon EKS là gì?
Amazon Elastic Kubernetes Service (EKS) là dịch vụ managed Kubernetes trên AWS. Với EKS, bạn có thể chạy Kubernetes mà không cần tự cài đặt và quản lý control plane. AWS đảm bảo:
- Tự động cập nhật, vá lỗi cho control plane.
- Quản lý availability với nhiều Availability Zones.
- Tích hợp sẵn với các dịch vụ AWS (IAM, VPC, CloudWatch, ELB, v.v.).
⚠️
Kubernetes không giới hạn chỉ chạy trên AWS, bạn có thể triển khai trên on-premises hoặc các cloud khác như GCP, Azure.
Kiến trúc cơ bản của EKS
1. Control Plane
- Bao gồm Kubernetes API Server, etcd, scheduler và controller manager.
- AWS quản lý toàn bộ control plane (HA, scaling, updates).
- Người dùng không có quyền truy cập trực tiếp vào control plane nodes.
2. Worker Nodes
- Chạy workload thực tế (các Pod).
- Có thể là:
- EC2 instances (tự quản lý).
- Fargate profiles (serverless, không cần EC2).
3. Pods
- Đơn vị nhỏ nhất trong Kubernetes.
- Một Pod có thể chứa một hoặc nhiều container cùng chia sẻ network và storage.
4. Node Groups
- Tập hợp nhiều worker node, có thể scale lên/xuống bằng Auto Scaling Group.
ECS vs EKS: Nên chọn dịch vụ nào?
| Tiêu chí | Amazon ECS | Amazon EKS |
|---|---|---|
| Loại dịch vụ | Native AWS Container Orchestration | Managed Kubernetes (tiêu chuẩn công nghiệp) |
| Độ phức tạp | Đơn giản, dễ dùng | Phức tạp hơn, cần hiểu Kubernetes |
| Khả năng di động workload | Chủ yếu trong AWS | Di động cao, Kubernetes chạy đa cloud/on-prem |
| Use case phổ biến | Ứng dụng đơn giản, microservices AWS-native | Workload đa dạng, hybrid, multi-cloud |
Khi nào nên dùng EKS?
- Khi bạn đã quen hoặc có đội ngũ sử dụng Kubernetes.
- Khi cần multi-cloud hoặc hybrid deployment.
- Khi ứng dụng phức tạp, yêu cầu các tính năng nâng cao của Kubernetes (Operators, CRDs, advanced networking).
- Khi bạn muốn tận dụng ecosystem phong phú của Kubernetes.
Khi nào nên dùng ECS?
- Khi bạn muốn giải pháp nhanh, đơn giản, AWS-native.
- Khi đội ngũ không có nhiều kinh nghiệm với Kubernetes.
- Khi workload chủ yếu chạy trong AWS, không yêu cầu hybrid/multi-cloud.