Back to articles
Technology Insight

Chiến lược Green DevOps: Cấu hình KEDA để tự động tắt bớt Node VPS khi thấp điểm

June 1, 2026

1. Xu hướng Green DevOps và bài toán lãng phí tài nguyên hạ tầng

Trong kỷ nguyên chuyển đổi số, tối ưu hóa hạ tầng không còn đơn thuần là câu chuyện cắt giảm chi phí tài chính. Green DevOps (DevOps xanh) đang trở thành một chuẩn mực mới, nơi các kỹ sư hệ thống hướng tới việc giảm thiểu dấu chân carbon (carbon footprint) của các trung tâm dữ liệu thông qua việc sử dụng tài nguyên một cách thông minh và bền vững.

Một trong những tác nhân gây lãng phí lớn nhất trong hạ tầng cloud và VPS (Virtual Private Server) hiện nay chính là tài nguyên nhàn rỗi (idle resources). Phần lớn các hệ thống công nghệ thông tin của doanh nghiệp được thiết kế để chịu tải cho những khung giờ cao điểm (peak hours). Tuy nhiên, vào ban đêm hoặc các ngày nghỉ lễ, lượng truy cập giảm mạnh, nhưng các Node trong cụm Kubernetes vẫn hoạt động hết công suất, tiêu thụ điện năng liên tục và phát sinh chi phí không đáng có.

Chiến lược tối ưu hóa hạ tầng thông minh không phải là cắt giảm năng lực hệ thống, mà là điều chỉnh năng lực đó khớp với nhu cầu thực tế theo thời gian thực.

2. Giải pháp KEDA: Định hình lại cơ chế Autoscaling trong Kubernetes

Mặc dù Kubernetes đã tích hợp sẵn cơ chế HPA (Horizontal Pod Autoscaler), công cụ này thường chỉ dựa vào các chỉ số cơ bản như CPU và Memory. Việc này dẫn đến độ trễ lớn khi hệ thống cần phản ứng với sự sụt giảm hoặc tăng vọt của lưu lượng tải thực tế.

KEDA (Kubernetes Event-driven Autoscaling) ra đời để giải quyết triệt để bài toán này. KEDA hoạt động như một thành phần mở rộng, cho phép Kubernetes tự động mở rộng hoặc thu nhỏ (scale in/out) các Pod dựa trên các sự kiện (events) từ hơn 60 nguồn dữ liệu khác nhau (như Prometheus, Apache Kafka, RabbitMQ, hay thậm chí là theo thời gian cụ thể - Cron). Đặc biệt, KEDA có khả năng scale về 0 (Scale-to-Zero), một tính năng mà HPA mặc định không làm được.

3. Cơ chế phối hợp giữa KEDA và Cluster Autoscaler để tắt Node VPS

Để đạt được mục tiêu tối ưu hóa tài nguyên ở cấp độ phần cứng (tắt/giảm Node VPS), KEDA sẽ phối hợp chặt chẽ với Cluster Autoscaler theo quy trình 3 bước nghiêm ngặt sau:

  1. KEDA theo dõi sự kiện thấp điểm: Thông qua Cron Scaler hoặc chỉ số lượng request thấp từ Prometheus, KEDA phát hiện hệ thống bước vào giai đoạn thấp điểm.
  2. Thu hẹp số lượng Pod: KEDA ra lệnh hạ số lượng Pod của các ứng dụng xuống mức tối thiểu (hoặc bằng 0 nếu dịch vụ cho phép).
  3. Cluster Autoscaler giải phóng Node: Khi các Pod bị xóa bỏ, các Node VPS tương ứng sẽ rơi vào trạng thái trống (hoặc thiếu tải). Cluster Autoscaler sẽ kích hoạt quy trình trục xuất các Pod còn lại (eviction), cô lập Node (cordon) và tiến hành tắt/xóa Node VPS đó khỏi cụm để ngừng tính phí.

4. Hướng dẫn cấu hình chi tiết KEDA Cron Scaler cho giờ thấp điểm

Dưới đây là hướng dẫn từng bước thiết lập file cấu hình YAML để KEDA tự động thu hẹp hệ thống dựa trên khung giờ cố định (ví dụ: từ 23h00 đến 05h00 sáng hôm sau là giai đoạn thấp điểm).

Bước 4.1: Cấu hình Deployment cho ứng dụng

Trước tiên, đảm bảo ứng dụng của bạn đã được triển khai trên Kubernetes với các giới hạn tài nguyên (resources requests/limits) rõ ràng để Cluster Autoscaler có thể tính toán chính xác:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: business-service
  namespace: production
spec:
  replicas: 5
  selector:
    matchLabels:
      app: business-service
  template:
    metadata:
      labels:
        app: business-service
    spec:
      containers:
      - name: app-container
        image: my-registry/business-service:v1.2
        resources:
          requests:
            cpu: "500m"
            memory: "512Mi"
          limits:
            cpu: "1000m"
            memory: "1Gi"

Bước 4.2: Khởi tạo ScaledObject với Cron Scaler

Tạo một file có tên keda-cron-scaledobject.yaml để định nghĩa hành vi scale ứng dụng theo thời gian:

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: cron-tiet-kiem-nang-luong
  namespace: production
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: business-service
  minReplicaCount: 1
  maxReplicaCount: 10
  advanced:
    horizontalPodAutoscalerConfig:
      behavior:
        scaleDown:
          stabilizationWindowSeconds: 300
          policies:
          - type: Percent
            value: 100
            periodSeconds: 15
  triggers:
  - type: cron
    metadata:
      timezone: Asia/Ho_Chi_Minh
      start: 0 23 * * *
      end: 0 5 * * *
      desiredReplicas: "1"

Trong cấu hình trên, timezone được thiết lập theo giờ Việt Nam. Vào lúc 23:00 (start), KEDA sẽ ép số lượng Pod (desiredReplicas) về bằng 1. Trạng thái này được duy trì liên tục cho đến 05:00 (end) sáng hôm sau, hệ thống sẽ tự động trả lại quyền quyết định cho các chỉ số tải thông thường.

5. Những lưu ý cốt lõi khi triển khai Green DevOps trong môi trường Production

Mặc dù việc tắt bớt Node VPS mang lại lợi ích tài chính và môi trường rõ rệt, doanh nghiệp cần lưu ý những rủi ro kỹ thuật sau để đảm bảo tính sẵn sàng của hệ thống:

  • Cấu hình PodDisruptionBudget (PDB): Tránh việc Cluster Autoscaler tắt Node quá nhanh làm gián đoạn các kết nối hiện tại của khách hàng. Hãy luôn cấu hình PDB để đảm bảo số lượng Pod tối thiểu luôn sống trong quá trình chuyển dịch.
  • Thời gian khởi động của VPS (Node Warm-up Time): Việc khởi động lại một Node VPS mới từ nhà cung cấp cloud thường mất từ 3 đến 7 phút. Do đó, khung giờ thiết lập trong KEDA cần phải đi trước thời điểm khách hàng truy cập lại (giai đoạn bắt đầu ngày làm việc mới) ít nhất 15-30 phút để bù đắp khoảng thời gian trễ này.
  • Giám sát chặt chẽ bằng Prometheus & Grafana: Luôn theo dõi các chỉ số về tỷ lệ lỗi (Error Rate) và thời gian phản hồi (Latency) tại thời điểm hệ thống thực hiện scale down mạnh để kịp thời điều chỉnh cấu hình.

6. Lời kết

Triển khai chiến lược Green DevOps bằng cách kết hợp KEDA và cơ chế Autoscaling không chỉ giúp doanh nghiệp cắt giảm từ 30% đến 50% chi phí hạ tầng VPS nhàn rỗi, mà còn là bước đi chiến lược khẳng định trách nhiệm xã hội của doanh nghiệp trong việc giảm thiểu tiêu thụ năng lượng toàn cầu. Hãy bắt đầu từ những thay đổi nhỏ trong kiến trúc deployment để hướng tới một hệ thống bền vững và tối ưu hơn.

Chiến lược Green DevOps: Cấu hình KEDA để tự động tắt bớt Node VPS khi thấp điểm | DPTCloud