Kubernetes (ออกเสียงว่า “CUBE-A-NET-IS”) เป็นแพลตฟอร์มโอเพ่นซอร์สที่ช่วยจัดการแอปพลิเคชันคอนเทนเนอร์ เช่น Docker ไม่ว่าคุณจะต้องการทำให้เป็นอัตโนมัติหรือปรับขนาดคอนเทนเนอร์เหล่านี้ในหลายโฮสต์ Kubernetes สามารถเพิ่มความเร็วในการปรับใช้ได้ ในการดำเนินการนี้อาจใช้ส่วนประกอบภายใน เช่น Kubernetes API หรือส่วนขยายของบุคคลที่สามที่ทำงานบน Kubernetes
บทความนี้จะช่วยให้คุณเข้าใจแนวคิดพื้นฐานของ Kubernetes และสาเหตุที่ทำให้เกิดการเปลี่ยนแปลงดังกล่าวในตลาดเซิร์ฟเวอร์ ทั้งผู้ให้บริการและผู้ให้บริการระบบคลาวด์ เช่น Azure และ Google Cloud ที่ให้บริการ Kubernetes
Kubernetes:ประวัติโดยย่อ
Kubernetes เป็นหนึ่งในของขวัญของ Google ต่อชุมชนโอเพ่นซอร์ส แพลตฟอร์มคอนเทนเนอร์เป็นส่วนหนึ่งของ Borg ซึ่งเป็นโครงการภายในของ Google มานานกว่าทศวรรษ Borg ให้ Google จัดการงานนับร้อยหรือนับพัน (เรียกว่า “Borglets”) จากแอปพลิเคชันต่างๆ ทั่วทั้งคลัสเตอร์ วัตถุประสงค์คือเพื่อใช้ประโยชน์จากเครื่องจักร (และเครื่องเสมือน) อย่างมีประสิทธิภาพ ในขณะเดียวกันก็รับประกันความพร้อมใช้งานสูงของคุณสมบัติรันไทม์
สถาปัตยกรรมเดียวกันนี้ได้รับความนิยมจากบริษัทอื่นๆ ที่มองหาวิธีการเพื่อให้แน่ใจว่ามีความพร้อมใช้งานสูงอย่างมีประสิทธิภาพ ที่ไหนสักแห่งในปี 2015 ทันทีที่ Kubernetes 1.0 ออกมา Google ก็เลิกควบคุมเทคโนโลยีนี้ ตอนนี้ Kubernetes มีรากฐานที่เรียกว่า Cloud Native Computing Foundation (CNCF) ซึ่งเป็นส่วนหนึ่งของ Linux Foundation
วิธีการทำงานของ Kubernetes
โดยการยืมแนวคิดของโครงการบอร์ก "Borglets" ได้หลีกทางให้กับ "พ็อด" ซึ่งเป็นหน่วยจัดกำหนดการที่มีคอนเทนเนอร์ โดยพื้นฐานแล้ว พวกมันจะมีที่อยู่ IP แต่ละรายการซึ่งเข้ามาในรูปภาพเมื่อใดก็ตามที่คอนเทนเนอร์ต้องการ CPU, หน่วยความจำ หรือที่เก็บข้อมูล
พ็อดช่วยให้มั่นใจถึงความพร้อมใช้งานสูงโดยการจัดสรรภาระงานของการรับส่งข้อมูลในรูปแบบ Round-robin นอกจากนี้ ยังอยู่ภายในเครื่อง (หรือเครื่องเสมือน) ที่เรียกว่า "โหนดผู้ปฏิบัติงาน" หรือที่เรียกว่า "ลูกน้อง" จากจุดนี้ "โหนดหลัก" จะควบคุมทั้งคลัสเตอร์โดยจัดการคอนเทนเนอร์โดยใช้ Kubernetes API นักเทียบท่าสามารถทำงานในโหนดของผู้ปฏิบัติงานแต่ละโหนด โดยสามารถดาวน์โหลดอิมเมจและเริ่มคอนเทนเนอร์ได้
ในการรับการเชื่อมต่อ API ที่คลัสเตอร์ Kubernetes ไวยากรณ์ CLI เรียกว่า kubectl
ถูกนำมาใช้. นี่เป็นคำสั่งที่สำคัญมากเพราะว่ามันรันคำสั่งทั้งหมดที่โหนดหลักทำหน้าที่ให้กับโหนดของผู้ปฏิบัติงานเพียงลำพัง การเรียนรู้ kubectl ให้เชี่ยวชาญต้องใช้การเรียนรู้เล็กน้อย แต่เมื่อคุณเรียนรู้แล้ว คุณสามารถเริ่มใช้งานคลัสเตอร์ Kubernetes ได้ Kubernetes และ Docker เขียนด้วยภาษาโปรแกรม Go
แอพพลิเคชั่น
Kubernetes สามารถลดค่าใช้จ่ายเซิร์ฟเวอร์และศูนย์ข้อมูลได้อย่างมาก เนื่องจากมีประสิทธิภาพสูงในการใช้เครื่อง แอปพลิเคชันทั่วไปของ Kubernetes ได้แก่:
- การจัดการแอปพลิเคชันเซิร์ฟเวอร์ . แอปพลิเคชันเซิร์ฟเวอร์ส่วนใหญ่ต้องการการรักษาความปลอดภัย การจัดการการกำหนดค่า การอัปเดต และอื่นๆ ซึ่งทำงานโดยใช้ Kubernetes ได้
- เปิดตัวและย้อนกลับอัตโนมัติ . ด้วย Kubernetes คุณไม่ต้องกังวลกับการเปิดตัวผลิตภัณฑ์หรือการย้อนกลับในหลายโหนดปลายทาง
- การทำให้แอปไร้สัญชาติใช้งานได้ . ขณะนี้แอปพลิเคชันเว็บสามารถควบคุมได้จากระยะไกล ตัวอย่างเช่น Kubernetes สามารถช่วยคุณเรียกใช้เซิร์ฟเวอร์ Nginx โดยใช้แอปพลิเคชันแบบไม่ระบุสถานะ
- การทำให้แอปเก็บสถานะใช้งานได้ . Kubernetes สามารถเรียกใช้ฐานข้อมูล MySQL ได้
- การจัดเก็บอ็อบเจ็กต์ API . สำหรับความต้องการพื้นที่จัดเก็บที่แตกต่างกัน Kubernetes ให้พื้นที่จัดเก็บในอุดมคติเพราะใช้หลักการของคอนเทนเนอร์
- พร้อมใช้งานทันที . Kubernetes มีประโยชน์มากในแอปพลิเคชันที่พร้อมใช้งานทันที เช่น การค้นหาบริการ การบันทึก การตรวจสอบ และการตรวจสอบสิทธิ์
- แอปพลิเคชัน IoT . Kubernetes พบว่ามีการใช้งาน IoT เพิ่มขึ้นเนื่องจากความสามารถในการปรับขนาดจำนวนมาก
- วิ่งได้ทุกที่ . คุณสามารถเรียกใช้ Kubernetes ได้ทุกที่ รวมถึงในกระเป๋าเดินทางด้วย
โดยย่อ
วัตถุประสงค์ของ Kubernetes คือการใช้ทรัพยากรคอมพิวเตอร์ให้เกิดประโยชน์สูงสุด เนื่องจากคุณสามารถจัดการคอนเทนเนอร์ข้ามโฮสต์ได้หลายเครื่อง โหนดปลายทางจึงไม่มีปัญหาด้านทรัพยากรหรือความล้มเหลว ช่วยปรับขนาดโดยอัตโนมัติเพราะคุณต้องให้คำสั่งเพียงครั้งเดียวจากโหนดหลัก และการปรับขนาดแอปพลิเคชันก็ไม่ใช่เรื่องเล็กที่จะปฏิวัติ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Kubernetes โปรดไปที่เว็บไซต์อย่างเป็นทางการซึ่งมีบทแนะนำ