ข้ามไปเนื้อหาหลัก
คอนเทนเนอร์· ~12 นาที

Volumes — ที่เก็บข้อมูลของ Pod

ephemeral vs persistent และทำไม container ต้องมี volume

เปรียบเทียบให้เห็นภาพ

ระบบไฟล์ในตัว container เหมือนกระดาษทด — ฉีกทิ้งเมื่อ container ตาย · Volume เหมือนลิ้นชักที่ต่อเข้ากับ Pod ข้อมูลอยู่รอดแม้ container ในนั้น restart

จำจากบทแรก: container เป็น ephemeral — เขียนไฟล์ไว้ในตัวมันจะหายเมื่อ restart · Volume คือที่เก็บที่ผูกกับ Pod เพื่อให้ข้อมูลอยู่รอดและแชร์ระหว่าง container ใน Pod เดียวกันได้

  • emptyDir — โฟลเดอร์ว่างที่อยู่คู่ Pod หายเมื่อ Pod ถูกลบ เหมาะ cache/scratch แชร์ระหว่าง container
  • hostPath — mount โฟลเดอร์จาก node (ระวัง! ผูกกับเครื่อง ไม่ portable)
  • persistentVolumeClaim — ขอที่เก็บถาวรจากระบบ storage (บทถัดไป) — วิธีมาตรฐานของงานจริง
  • configMap / secret — mount ค่าตั้งค่า/ความลับเป็นไฟล์ก็ถือเป็น volume ชนิดหนึ่ง

สรุป Key Takeaways

  • ไฟล์ในตัว container หายเมื่อ restart — ต้องใช้ Volume ถ้าอยากให้อยู่รอด
  • emptyDir อยู่คู่ Pod (หายเมื่อ Pod ลบ) · PVC = ถาวรจริง
  • ConfigMap/Secret ที่ mount เป็นไฟล์ก็เป็น volume ชนิดหนึ่ง
อ่านจบแล้วอย่าลืมทำเครื่องหมาย