PlusMagi's Blog By Pitt Phunsanit

kubernetes: Pod ฝักถั่ว Container

ในโลกของ Containerization และ Kubernetes ทั้ง Container และ Pod เป็นหน่วยที่ใช้วันรันแอปพลิเคชันเหมือนกัน แต่มีระดับชั้น (Abstraction) และหน้าที่ที่ต่างกันอย่างชัดเจนครับ

สรุปความแตกต่างแบบเข้าใจง่าย ได้ดังนี้ครับ


Container (ตู้คอนเทนเนอร์)

Container คือ หน่วยที่เล็กที่สุดในฝั่งของ Runtime/Packaging (เช่น Docker, containerd) มันคือการแพ็กโค้ดของแอปพลิเคชัน, ไลบรารี, และ Dependencies ทั้งหมดที่จำเป็นต้องใช้ รวมเข้าด้วยกันเป็นก้อนเดียว เพื่อให้มั่นใจว่าแอปจะทำงานได้เหมือนกันในทุกสภาพแวดล้อม (Environment)


Pod (ฝักถั่ว)

Pod คือ หน่วยที่เล็กที่สุดในฝั่งของ Kubernetes (Orchestration) โดย Pod จะทำหน้าที่เป็น “ตัวห่อหุ้ม” (Wrapper) ให้กับ Container อีกทีหนึ่ง โดยใน 1 Pod สามารถมี Container อยู่ข้างในได้ตั้งแต่ 1 ตัว หรือมากกว่านั้น (มักจะเรียกว่า Sidecar Container)


ตารางเปรียบเทียบข้อแตกต่าง

คุณสมบัติContainerPod
แนวคิดหลักการแพ็กแอปพลิเคชันและ Dependenciesหน่วยที่เล็กที่สุดที่ Kubernetes ใช้จัดการและสั่งรัน
เทคโนโลยีที่จัดการDocker, Containerd, PodmanKubernetes
การระบุที่อยู่ (IP)มี IP เป็นของตัวเองในระดับ Container Networkแชร์ IP ร่วมกัน 1 IP ต่อ 1 Pod (ทุก Container ข้างในใช้ IP นี้ร่วมกัน)
การใช้ StorageIsolated (แยกกัน) ยกเว้นจะต่อ Volume นอกสามารถแชร์ Volume ร่วมกันระหว่าง Container ข้างในได้ง่าย
ความสัมพันธ์1 Container ทำหน้าที่ 1 อย่างเดี่ยวๆสามารถรวม Container หลัก และ Container เสริม (เช่น Logger, Proxy) ไว้ด้วยกันได้

อุปมาอุปไมยให้เห็นภาพ


อ่านเพิ่มเติม

Exit mobile version