Chuyển tới nội dung chính

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.