Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

Kubernetes Pod: หน่วยการปรับใช้เล็กที่สุดใน Kubernetes กลุ่มคอนเทนเนอร์ที่ทำงานร่วมกัน

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

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

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

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

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

การจัดการ Kubernetes Pod

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

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

คอนเทนเนอร์ภายใน Pod แชร์ IP address และ port space ร่วมกัน พวกเขาสามารถค้นพบกันผ่าน localhost แอปพลิเคชันที่กำหนดให้ Pod เดียวกันเข้าถึง shared volumes ซึ่งแนบกับ Pod

Pods ยังช่วยให้คอนเทนเนอร์สื่อสารด้วยการสื่อสารมาตรฐานอื่นๆ เช่น POSIX shared memory หรือ SystemV semaphores คอนเทนเนอร์ใน Pod หนึ่งมี IP addresses ต่างจากคอนเทนเนอร์ในอีก Pod และไม่สามารถใช้โปรโตคอล IPC ได้ อย่างไรก็ตาม การสื่อสาร Pod-to-Pod ของ Kubernetes เกิดขึ้นง่ายผ่าน services ตัวอย่าง หาก front end ของแอปพลิเคชันอยู่ใน Pod บน Node หนึ่ง back end สามารถอยู่บน Node เดียวกัน Node อื่น หรือ 10 อินสแตนซ์กระจายไปตาม Nodes ต่างๆ และ front-end Pod เพียงเชื่อมต่อกับ service ที่แทน back-end Pod หรือ Pods

Kubernetes Pod: หน่วยการปรับใช้เล็กที่สุดใน Kubernetes กลุ่มคอนเทนเนอร์ที่ทำงานร่วมกัน