Kubernetes: ความหมาย ฟังก์ชัน และกลไกการทำงาน

Kubernetes(เรียกโดยย่อว่า K8s) เป็นระบบโอเพ่นซอร์สที่ใช้เพื่อจัดการและปรับใช้แอปพลิเคชันที่มีคอนเทนเนอร์ผ่านเครือข่ายคอมพิวเตอร์ Kubernetes ได้กลายเป็นแพลตฟอร์มการจัดการคอนเทนเนอร์ที่ได้รับความนิยมและมีประสิทธิภาพ ซึ่งเดิมพัฒนาโดย Google และปัจจุบันดูแลโดยชุมชนนักพัฒนาขนาดใหญ่

หน้าที่หลักของ Kubernetes include

  1. การจัดการคอนเทนเนอร์ : Kubernetes ช่วยให้คุณสามารถจัดแพ็คเกจแอปพลิเคชันและทรัพยากรลงใน containers. Containers ให้สภาพแวดล้อมที่มีน้ำหนักเบาและรับรองว่าแอปพลิเคชันจะทำงานอย่างสม่ำเสมอบนทุกระบบ

  2. การปรับใช้อัตโนมัติ : Kubernetes ช่วยให้สามารถปรับใช้อัตโนมัติและปรับขนาดแอปพลิเคชันและบริการได้ง่าย คุณสามารถระบุความต้องการทรัพยากร จำนวนอินสแตนซ์ และ Kubernetes จะรักษาสถานะที่ต้องการไว้โดยอัตโนมัติ

  3. การจัดการทรัพยากร : K8 จัดการทรัพยากรเซิร์ฟเวอร์ เช่น CPU หน่วยความจำ และพื้นที่เก็บข้อมูล เพื่อให้แน่ใจว่าแอปพลิเคชันไม่ใช้ทรัพยากรมากเกินไป และไม่รบกวนซึ่งกันและกัน

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

  5. โหลดบาลานซ์และการกระจายทราฟฟิก : Kubernetes ให้กลไกในการกระจายทราฟฟิกระหว่างอินสแตนซ์ของแอปพลิเคชันบนเซิร์ฟเวอร์ที่แตกต่างกันอย่างเท่าเทียม nodes กัน สิ่งนี้ช่วยปรับปรุงประสิทธิภาพและรับประกันความสามารถในการขยายขนาด

  6. การจัดการการกำหนดค่าและความลับ : Kubernetes ช่วยให้คุณจัดการการกำหนดค่าแอปพลิเคชันและความลับได้อย่างปลอดภัยโดยใช้คุณสมบัติเช่น K8s Secrets และ ConfigMaps

กลไกการทำงานของ Kubernetes ได้แก่

  1. Nodes: เซิร์ฟเวอร์หรือคอมพิวเตอร์แต่ละเครื่องในเครือข่ายเรียกว่า " nodes " มีสองประเภท nodes ใน Kubernetes: Master Node และ Worker Node Master Node จัดการและควบคุมระบบทั้งหมด ในขณะที่ Worker Node ดำเนินการ containers และแอปพลิเคชัน

  2. Pods: Pod เป็นหน่วยที่เล็กที่สุดที่สามารถปรับใช้ได้ใน Kubernetes. พ็อดสามารถมีหนึ่งหรือหลายรายการได้ containers แต่จะใช้พื้นที่เก็บข้อมูลเครือข่ายและวงจรการใช้งานเดียวกัน สิ่งนี้อำนวยความสะดวกในการสื่อสารระหว่าง containers ภายในพ็อด

  3. Controller: ตัวควบคุมเป็นส่วนประกอบที่จัดการและบำรุงรักษาแบบจำลองของ pods. ประเภทของคอนโทรลเลอร์ประกอบด้วย ReplicaSet(รับรองจำนวนที่ถูกต้อง pods และการรีสตาร์ทหากจำเป็น) การปรับใช้(การจัดการเวอร์ชันและการอัพเดตแอปพลิเคชัน) และ StatefulSet(สำหรับการปรับใช้แอปพลิเคชันแบบมีสถานะ)

  4. Service: บริการเป็นกลไกสำหรับการปรับสมดุลโหลดและกระจายการรับส่งข้อมูลไป pods ยัง บริการต่างๆ ช่วยให้แอปพลิเคชันเข้าถึงได้ง่าย pods โดยไม่จำเป็นต้องทราบตำแหน่งเฉพาะของแอปพลิเคชัน

  5. Kubelet และ Kube Proxy: Kubelet เป็นส่วนประกอบที่ทำงานบนแต่ละโหนดของผู้ปฏิบัติงาน ซึ่งรับผิดชอบในการจัดการ pods บนโหนดนั้น Kube Proxy เป็นพร็อกซีเครือข่ายสำหรับเชื่อมต่อกับ pods.

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