Pod chết như ngả rạ

Hệ thống tự scale, tự hồi sinh mà, đúng không anh?
– Chết thì có, hồi sinh thì để mai tính!

Audit EKS mà thấy pod chết liên tục vì OOM (Out Of Memory), node chạy 90% CPU, trong khi node khác nằm chơi, tôi chỉ muốn hỏi: “Limit đâu? Autoscaling đâu?”. Cluster như cánh đồng sau bão, pod ngã rạp khắp nơi.

Pod trong EKS khi không đặt resource limits.

Thực trạng: Không resource limits

Thực trạng:  
  • Không đặt requests/limits: Pod chiếm hết CPU/memory, gây OOM, làm chết cả cluster.  
  • Autoscaling không hiệu quả: Node group không scale vì workload phân bổ lệch.  
  • Không monitor: Team không biết node nào quá tải, pod nào “ăn” nhiều tài nguyên.
Hệ quả:  
  • Pod crash liên tục: OOM hoặc CPU throttle làm pod restart.  
  • Cluster không ổn định: Node quá tải, ảnh hưởng toàn hệ thống.  
  • Tốn tiền: Node chạy full capacity dù không cần thiết.

Giải pháp: Đặt limit và autoscaling

Để pod sống lâu:  
  • Áp dụng LimitRange: Đặt default CPU/memory limits trong namespace.  
  • Dùng ResourceQuota: Giới hạn tổng tài nguyên mỗi namespace.  
  • Vertical Pod Autoscaler (VPA): Tự động điều chỉnh requests/limits dựa trên workload.
Ví dụ: LimitRange trong namespace:
apiVersion: v1
kind: LimitRange
metadata:
  name: default-limits
  namespace: dev
spec:
  limits:
  - default:
      cpu: "500m"
      memory: "512Mi"
    defaultRequest:
      cpu: "200m"
      memory: "256Mi"
    type: Container

🎯 Tóm lại: Không đặt limit, pod sẽ “chết như rạ”. Dùng LimitRange, ResourceQuota, và VPA để cluster ổn định, tiết kiệm tài nguyên.

Post a Comment

Mới hơn Cũ hơn