คอนเทนเนอร์· ~14 นาที
Probes — ตรวจสุขภาพ Pod
liveness / readiness / startup บอก K8s ว่า Pod พร้อมหรือป่วย
เหมือนหมอตรวจคนไข้: liveness = "ยังมีชีพจรไหม" (ไม่มี → ปั๊มหัวใจ/restart) · readiness = "พร้อมทำงานรับแขกหรือยัง" (ไม่พร้อม → พักไว้ก่อน ยังไม่ส่งงานให้) · startup = "ให้เวลาฟื้นตอนเพิ่งตื่น" (แอปที่บูตนาน)
K8s รู้ว่า container "รันอยู่" แต่ไม่รู้ว่ามัน "ทำงานได้จริง" ไหม · Probes คือการตรวจสุขภาพที่เราสั่งให้ K8s ยิงเช็คเป็นระยะ
3 probe หน้าที่ต่างกัน
livenessล้มเหลว → restart container
readinessล้มเหลว → ถอดออกจาก Service (ไม่ส่ง traffic)
startupล้มเหลว → กันเช็คเร็วเกินตอนแอปบูตนาน
- livenessProbe — เช็คว่ายังมีชีวิต ถ้าล้มเหลวต่อเนื่อง K8s restart container
- readinessProbe — เช็คว่าพร้อมรับ traffic ไหม ถ้าไม่พร้อม ถอด Pod ออกจาก Service ชั่วคราว (ไม่ส่ง request มา) แต่ไม่ restart
- startupProbe — สำหรับแอปที่บูตนาน กัน liveness เช็คเร็วเกินจน restart วนไม่จบ
readinessProbe:
httpGet: { path: /healthz, port: 8080 }
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet: { path: /healthz, port: 8080 }
initialDelaySeconds: 15
periodSeconds: 20สรุป Key Takeaways
- liveness ล้มเหลว → restart container · readiness ล้มเหลว → เลิกส่ง traffic (ไม่ restart)
- startupProbe สำหรับแอปบูตนาน กัน liveness ฆ่าก่อนพร้อม
- readiness ช่วยให้ rolling update ไม่ส่ง traffic ให้ Pod ที่ยังไม่พร้อม
อ่านจบแล้วอย่าลืมทำเครื่องหมาย

