Karpenter, RDS HA và FinOps
Scale thông minh nhưng không đánh đổi tính sẵn sàng mù quáng.
Nắm bản chất
HPA/KEDA scale Pods; Karpenter provision node capacity dựa trên Pod scheduling requirements và NodePools. NodeClass xác định AMI/IAM/subnet/security groups. Spot giảm chi phí trong workloads chịu interruption; cần idempotent jobs, graceful shutdown và retry.
RDS Multi-AZ hỗ trợ HA nhưng không thay backups/PITR: xóa nhầm dữ liệu vẫn có thể replication. FinOps đánh giá cost per business outcome (job thành công, request đạt SLO), không chỉ giảm EC2 bill. Một NAT Gateway tập trung có thể giảm giá lab nhưng tạo SPOF/cross-AZ costs.
Luồng hoạt động
Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?
Lệnh & cấu hình mẫu
kubectl get nodepools,nodeclaims
kubectl -n kube-system logs deploy/karpenter --tail=100
python3 finops/estimate.py --rates finops/assumptions.example.json
Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.
Bài tập 10–20 phút
Chạy FinOps estimator offline của Buổi 14. Thay giả định nodes, NAT và RDS, đánh giá thay đổi cost/job; ghi rõ mọi đơn giá chỉ là giả định.
Lỗi dễ mắc
Đừng dùng al2023@latest/Spot mà không pin/test AMI hoặc thiết
kế disruption controls cho production critical workloads.
Tự kiểm tra
Tăng `maxReplicas` HPA có tự đảm bảo EC2 capacity không?Xem đáp án ↗
Không. Cần node autoscaling/provisioning và đủ AWS quotas/network resources.
Học thêm qua lab
Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.
↓ Tải mã nguồn thực hành chương 14Đối chiếu tài liệu gốc
Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.
Mở tài liệu chính thức ↗