Skip to main content
Back to articles

Liveness, Readiness และ Startup Probe ต่างกันอย่างไร

Probe ช่วยให้ Kubernetes รู้ว่าแอปยังทำงาน พร้อมรับทราฟฟิก หรือยังอยู่ระหว่างเริ่มต้น อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

Liveness, Readiness และ Startup Probe ต่างกันอย่างไร

Probe ช่วยให้ Kubernetes รู้ว่าแอปยังทำงาน พร้อมรับทราฟฟิก หรือยังอยู่ระหว่างเริ่มต้น เหมาะกับบริการที่ต้องแยกอาการค้างออกจากช่วงอุ่นแคชหรือเชื่อมฐานข้อมูลก่อนเปิดรับผู้ใช้ บทความนี้สรุปแนวคิดจากเอกสารทางการของ Kubernetes และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

Kubernetes ใช้ตัวควบคุมปรับสถานะคลัสเตอร์ให้ตรงกับค่าที่ประกาศไว้ การเข้าใจ resource และความสัมพันธ์ระหว่าง Pod, Service กับ Node ช่วยให้ออกแบบระบบที่ฟื้นตัวได้

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: Probe ช่วยให้ Kubernetes รู้ว่าแอปยังทำงาน พร้อมรับทราฟฟิก หรือยังอยู่ระหว่างเริ่มต้น จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

Liveness ใช้ตัดสินใจรีสตาร์ต Readiness ใช้ถอดจากปลายทางของ Service และ Startup ช่วยให้แอปที่เริ่มช้าไม่ถูกรีสตาร์ตก่อนเวลา

ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม

เหมาะกับงานแบบไหน

เหมาะกับบริการที่ต้องแยกอาการค้างออกจากช่วงอุ่นแคชหรือเชื่อมฐานข้อมูลก่อนเปิดรับผู้ใช้

ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง

ขั้นตอนนำไปใช้

  1. ตรวจ resource และ namespace ที่จะเปลี่ยน พร้อมดู workload ที่พึ่งพากัน
  2. ทดลอง manifest แล้วดู event, rollout และสถานะ Pod
  3. กำหนดวิธีย้อน manifest และตรวจข้อมูลที่ต้องคงอยู่

เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน

ข้อควรระวัง

ตั้ง timeout และ threshold ตามพฤติกรรมจริง มิฉะนั้น Probe อาจสร้างวงจรรีสตาร์ตซ้ำ

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

Probe ช่วยให้ Kubernetes รู้ว่าแอปยังทำงาน พร้อมรับทราฟฟิก หรือยังอยู่ระหว่างเริ่มต้น เหมาะกับบริการที่ต้องแยกอาการค้างออกจากช่วงอุ่นแคชหรือเชื่อมฐานข้อมูลก่อนเปิดรับผู้ใช้ ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

อ่านเพิ่มเติม: เอกสารทางการของ Kubernetes