Kubernetes(เรียกโดยย่อว่า K8s) เป็นระบบโอเพ่นซอร์สที่ใช้เพื่อจัดการและปรับใช้แอปพลิเคชันที่มีคอนเทนเนอร์ผ่านเครือข่ายคอมพิวเตอร์ Kubernetes ได้กลายเป็นแพลตฟอร์มการจัดการคอนเทนเนอร์ที่ได้รับความนิยมและมีประสิทธิภาพ ซึ่งเดิมพัฒนาโดย Google และปัจจุบันดูแลโดยชุมชนนักพัฒนาขนาดใหญ่
หน้าที่หลักของ Kubernetes include
-
การจัดการคอนเทนเนอร์ : Kubernetes ช่วยให้คุณสามารถจัดแพ็คเกจแอปพลิเคชันและทรัพยากรลงใน containers. Containers ให้สภาพแวดล้อมที่มีน้ำหนักเบาและรับรองว่าแอปพลิเคชันจะทำงานอย่างสม่ำเสมอบนทุกระบบ
-
การปรับใช้อัตโนมัติ : Kubernetes ช่วยให้สามารถปรับใช้อัตโนมัติและปรับขนาดแอปพลิเคชันและบริการได้ง่าย คุณสามารถระบุความต้องการทรัพยากร จำนวนอินสแตนซ์ และ Kubernetes จะรักษาสถานะที่ต้องการไว้โดยอัตโนมัติ
-
การจัดการทรัพยากร : K8 จัดการทรัพยากรเซิร์ฟเวอร์ เช่น CPU หน่วยความจำ และพื้นที่เก็บข้อมูล เพื่อให้แน่ใจว่าแอปพลิเคชันไม่ใช้ทรัพยากรมากเกินไป และไม่รบกวนซึ่งกันและกัน
-
การกู้คืนอัตโนมัติและความทนทานต่อข้อผิดพลาด : Kubernetes ช่วยให้แอปพลิเคชันกู้คืนจากความล้มเหลวโดยอัตโนมัติ สามารถย้อนกลับไปเป็นเวอร์ชันก่อนหน้าของแอปพลิเคชันได้โดยอัตโนมัติหากเวอร์ชันใหม่ประสบปัญหา
-
โหลดบาลานซ์และการกระจายทราฟฟิก : Kubernetes ให้กลไกในการกระจายทราฟฟิกระหว่างอินสแตนซ์ของแอปพลิเคชันบนเซิร์ฟเวอร์ที่แตกต่างกันอย่างเท่าเทียม nodes กัน สิ่งนี้ช่วยปรับปรุงประสิทธิภาพและรับประกันความสามารถในการขยายขนาด
-
การจัดการการกำหนดค่าและความลับ : Kubernetes ช่วยให้คุณจัดการการกำหนดค่าแอปพลิเคชันและความลับได้อย่างปลอดภัยโดยใช้คุณสมบัติเช่น K8s Secrets และ ConfigMaps
กลไกการทำงานของ Kubernetes ได้แก่
-
Nodes: เซิร์ฟเวอร์หรือคอมพิวเตอร์แต่ละเครื่องในเครือข่ายเรียกว่า " nodes " มีสองประเภท nodes ใน Kubernetes: Master Node และ Worker Node Master Node จัดการและควบคุมระบบทั้งหมด ในขณะที่ Worker Node ดำเนินการ containers และแอปพลิเคชัน
-
Pods: Pod เป็นหน่วยที่เล็กที่สุดที่สามารถปรับใช้ได้ใน Kubernetes. พ็อดสามารถมีหนึ่งหรือหลายรายการได้ containers แต่จะใช้พื้นที่เก็บข้อมูลเครือข่ายและวงจรการใช้งานเดียวกัน สิ่งนี้อำนวยความสะดวกในการสื่อสารระหว่าง containers ภายในพ็อด
-
Controller: ตัวควบคุมเป็นส่วนประกอบที่จัดการและบำรุงรักษาแบบจำลองของ pods. ประเภทของคอนโทรลเลอร์ประกอบด้วย ReplicaSet(รับรองจำนวนที่ถูกต้อง pods และการรีสตาร์ทหากจำเป็น) การปรับใช้(การจัดการเวอร์ชันและการอัพเดตแอปพลิเคชัน) และ StatefulSet(สำหรับการปรับใช้แอปพลิเคชันแบบมีสถานะ)
-
Service: บริการเป็นกลไกสำหรับการปรับสมดุลโหลดและกระจายการรับส่งข้อมูลไป pods ยัง บริการต่างๆ ช่วยให้แอปพลิเคชันเข้าถึงได้ง่าย pods โดยไม่จำเป็นต้องทราบตำแหน่งเฉพาะของแอปพลิเคชัน
-
Kubelet และ Kube Proxy: Kubelet เป็นส่วนประกอบที่ทำงานบนแต่ละโหนดของผู้ปฏิบัติงาน ซึ่งรับผิดชอบในการจัดการ pods บนโหนดนั้น Kube Proxy เป็นพร็อกซีเครือข่ายสำหรับเชื่อมต่อกับ pods.
ส่งผลให้ Kubernetes การปรับใช้และการจัดการแอปพลิเคชันในคอนเทนเนอร์เป็นไปโดยอัตโนมัติ ช่วยลดเวลาและความพยายามที่จำเป็นในการบำรุงรักษาระบบที่ซับซ้อน