Azure Kubernetes Service (AKS): Hướng dẫn Toàn diện
1. Giới thiệu
Kubernetes (K8s) là gì?
Là hệ điều hành cho các ứng dụng Container. Nó giúp tự động hóa việc deploy, scale, và quản lý container.
Tại sao dùng AKS?
K8s rất khó cài đặt và vận hành (Hard way). AKS là dịch vụ Managed K8s.
- Control Plane (Master Node): Microsoft quản lý, miễn phí. Bạn không cần lo nó chết.
- Worker Nodes: Là các VM chạy container của bạn. Bạn trả tiền cho các VM này.
2. Kiến trúc AKS
3. Node Pools (Nhóm máy)
Bạn có thể chia các Node thành các nhóm khác nhau.
- System Node Pool: Chạy các pod hệ thống của K8s (CoreDNS, Metrics Server). Bắt buộc phải có. Nên dùng Linux.
- User Node Pool: Chạy ứng dụng của bạn.
- Có thể tạo Pool chạy Windows cho app .NET cũ.
- Có thể tạo Pool dùng Spot VM để tiết kiệm tiền.
4. Mạng (Networking)
Chọn đúng mô hình mạng là quyết định quan trọng nhất khi tạo AKS.
Kubenet (Cơ bản)
- Tiết kiệm IP của VNet. Các Pod dùng mạng ảo riêng (Overlay), ẩn sau Node IP (NAT).
- Nhược điểm: Hơi chậm hơn một chút (do NAT). Khó cấu hình Network Policy.
Azure CNI (Nâng cao - Khuyên dùng)
- Mỗi Pod nhận một IP thật từ VNet.
- Hiệu năng cao nhất. Dễ dàng kết nối với các dịch vụ khác trong VNet.
- Nhược điểm: Tốn rất nhiều IP. Cần quy hoạch Subnet rộng (VD:
/16).
5. Vận hành
Scaling
- Cluster Autoscaler: Tự động thêm/bớt VM (Node) khi Pod không có chỗ chạy.
- HPA (Horizontal Pod Autoscaler): Tự động thêm/bớt Pod dựa trên CPU/RAM.
Upgrading
K8s ra phiên bản mới liên tục (3 tháng/lần). Bạn cần upgrade AKS thường xuyên.
- AKS hỗ trợ upgrade tự động hoặc thủ công (Surge Upgrade: Tạo node mới -> Chuyển pod sang -> Xóa node cũ). Không downtime.