Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

Kubernetes Pod

Kubernetes Pods เป็นหน่วยคำนวณที่ปรับใช้ได้ขนาดเล็กที่สุดในโอเพนซอร์ส Kubernetes การจัดกำหนดการคอนเทนเนอร์และสภาพแวดล้อมการประสาน

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

เนื้อหาของ Pod ได้รับการจัดกำหนดการและตั้งอยู่ร่วมกัน โดยสร้างแบบจำลองโฮสต์ทางลอจิคัลเฉพาะแอปพลิเคชัน ผู้ใช้ Kubernetes ควรโฮสต์คอนเทนเนอร์แอปพลิเคชันที่ผสานรวมอย่างแน่นหนาในพ็อด หากไม่มีคอนเทนเนอร์ แอปพลิเคชันหรือบริการเหล่านี้จะต้องทำงานบนเครื่องเสมือนหรือเครื่องจริงเครื่องเดียวกัน

บริบทที่ใช้ร่วมกันของ Pod ถูกกำหนดโดยแง่มุมของการแยก เช่น Linux Namespaces หรือ cgroups สำหรับพ็อดแต่ละรายการ สามารถแยกแอปพลิเคชันเดี่ยวเพิ่มเติมได้

ผู้ปฏิบัติงานสามารถเปิดเผยข้อมูลเกี่ยวกับ Pod, Node และ/หรือคอนเทนเนอร์ได้โดยใช้ตัวแปรสภาพแวดล้อม ตัวแปรสภาพแวดล้อมของ Pod จะบอกแอปพลิเคชันในคอนเทนเนอร์ของ Pod ว่าจะค้นหาทรัพยากรที่ต้องการได้ที่ไหน หรือจะกำหนดค่าส่วนประกอบอย่างไร ข้อมูลนี้จะถูกฉีดเข้าไปในคอนเทนเนอร์ขณะรันไทม์ แม้ว่าโหนดจะมีตัวแปรสภาพแวดล้อมด้วยก็ตาม สิ่งเหล่านี้จะไม่เปิดเผยต่อคอนเทนเนอร์ ผู้ใช้กำหนดหรือเขียนตัวแปรสภาพแวดล้อม Kubernetes แบบคงที่


การจัดการ Kubernetes Pod

Kubernetes รองรับรันไทม์คอนเทนเนอร์ Docker เช่นเดียวกับ CoreOS rkt และ CRI-O ซึ่งย่อมาจาก Kubelet Container Runtime Interface โดยใช้รันไทม์ที่สอดคล้องกับ Open Container Initiative

ผู้ใช้สามารถสร้างพ็อดได้ แต่บ่อยครั้งที่ Kubernetes Controller สร้างพ็อดและแบบจำลองดังกล่าวเพื่อความพร้อมใช้งานสูงหรือการปรับขนาดในแนวนอน เมื่อผู้ใช้ร้องขอ ตัวอย่างเช่น อินสแตนซ์ใหม่ของ Pod สามตัว Kubernetes จะสร้างสาม Pods เป็นทรัพยากรระดับ API ตัวจัดกำหนดการจะค้นหาโหนดที่เหมาะสมสำหรับแต่ละ Pod ตามนโยบายของผู้ใช้ Kubernetes และวาง Pod ไว้ที่นั่น

คอนเทนเนอร์ภายใน Pod ใช้ที่อยู่ IP ร่วมกันและพื้นที่พอร์ตร่วมกัน พวกเขาสามารถค้นพบกันและกันผ่าน localhost . แอปพลิเคชันที่กำหนดให้กับวอลุ่มที่แชร์การเข้าถึง Pod เดียวกัน ซึ่งแนบมากับ Pod

พ็อดยังช่วยให้คอนเทนเนอร์สามารถสื่อสารโดยใช้การสื่อสารมาตรฐานอื่นๆ เช่น หน่วยความจำที่ใช้ร่วมกันของ POSIX หรือเซมาฟอร์ SystemV คอนเทนเนอร์ในพ็อดหนึ่งมีที่อยู่ IP ที่แตกต่างจากคอนเทนเนอร์ในอีกที่หนึ่ง และไม่สามารถใช้โปรโตคอล IPC ได้ อย่างไรก็ตาม การสื่อสาร Kubernetes Pod to Pod เกิดขึ้นได้ง่ายผ่านบริการต่างๆ ตัวอย่างเช่น หากส่วนหน้าของแอปพลิเคชันอยู่ใน Pod บนโหนดหนึ่ง แบ็กเอนด์สามารถอยู่บนโหนดเดียวกัน บนโหนดอื่น ใน 10 อินสแตนซ์ที่กระจายไปทั่วโหนดต่างๆ และฟรอนต์เอนด์ Pod เพียงแค่เชื่อมต่อกับ บริการที่เป็นตัวแทนของพ็อดส่วนหลังหรือพ็อด

Kubernetes Pod