Bỏ qua để đến nội dung
Knowledge Hub

Tình huống: probe làm cả đội Pod restart dây chuyền Trung cấp

Thời gian đọc ước tính: 1 phút

Một query báo cáo làm database chậm. Vì /health của liveness gọi database với timeoutSeconds: 1, kubelet restart cả 8 Pod, Pod mới khởi động lại dồn tải vào database, và cả đội Pod vào CrashLoopBackOff. Bạn đi qua bốn quyết định: cầm máu, root cause, thiết kế lại probe và action item.

  • Chọn sai thì đọc giải thích rồi Chọn lại.
  • Điểm chỉ tính lựa chọn đầu tiên ở mỗi bước. Gợi ý: với mỗi probe, hỏi “restart có sửa được lỗi này không?”.
Tình huống

Database chậm, cả đội Pod vào CrashLoopBackOff

Bạn là on-call của team order API (NestJS, 8 Pod, mỗi Pod pool 20 connection tới một PostgreSQL primary dùng chung). Mỗi lựa chọn hiển thị ngay hậu quả trên các chỉ số bên dưới.

Pod ready / 80
Request lỗi 5xx94 %
Container restart 15 phút qua41
CPU database98 %

Bước 1/4 · 14:09, không còn Pod nào nhận traffic

14:02 một query báo cáo full scan trên primary làm database chậm: query thường từ 5 ms lên 1–2 giây. Hai phút sau, cả 8 Pod bị restart. Pod mới khởi động phải nạp cấu hình và warm cache từ database, mất 70 giây thay vì 25, rồi lại bị kill.

Giờ 6/8 Pod đang CrashLoopBackOff, Service không còn endpoint, gần như mọi request trả 503.

Pod
0/8 ready, 6 CrashLoopBackOff
query báo cáo
đang chạy 7 phút, pid 48213
event loop delay của Pod
bình thường, CPU Pod 20%
livenessProbe:  { httpGet: { path: /health, port: 3000 }, periodSeconds: 10, timeoutSeconds: 1, failureThreshold: 3 }
readinessProbe: { httpGet: { path: /health, port: 3000 }, periodSeconds: 10, timeoutSeconds: 1 }
# /health = TypeOrmHealthIndicator.pingCheck('database')

Events:
  Warning  Unhealthy  Liveness probe failed: Get "http://10.0.3.17:3000/health":
           context deadline exceeded (Client.Timeout exceeded while awaiting headers)
  Normal   Killing    Container api failed liveness probe, will be restarted

Bạn làm gì?

Chơi xong, đọc Kubernetes probes để xem bảng chọn probe theo từng loại sự cố và manifest tối giản.