Kubernetes คืออะไร

  1. Kubernetes คืออะไร
  2. เหตุใด Kubernetes จึงมีความสำคัญต่อการจัดการคอนเทนเนอร์
  3. Kubernetes และ Docker: ถั่วสองเมล็ดในฝัก (Two peas in a pod)

ในโลกที่การทำแอพมีการพัฒนาอย่างต่อเนื่อง และธุรกิจต่างค้นหาวิธีปรับปรุงประสิทธิภาพและปรับปรุงกระบวนการอย่างต่อเนื่อง เทคโนโลยีหนึ่งได้กลายเป็นตัวเปลี่ยนเกม นั่นคือ Kubernetes เป็นระบบโอเพ่นซอร์สที่ปฏิวัติวิธีที่บริษัทปรับใช้ ปรับขนาด และจัดการแอปพลิเคชันในการทำแอพ บทความนี้เป็นบทความแรกในบทความที่มีเป้าหมายเพื่อแนะนำคุณเกี่ยวกับเทคโนโลยีนี้ แม้ว่าคุณจะเพิ่งเริ่มต้นก็ตาม เราจะสำรวจพื้นฐานของ Kubernetes ความจำเป็นในการจัดระเบียบคอนเทนเนอร์ และความสัมพันธ์ระหว่าง Docker และ Kubernetes ในการทำแอพ

1. Kubernetes คืออะไร

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

เทคโนโลยีการบรรจุคอนเทนเนอร์ที่มีชื่อเสียงที่สุดโดย Docker ถือเป็นความก้าวหน้าครั้งยิ่งใหญ่ในโลกของการพัฒนาซอฟต์แวร์ คอนเทนเนอร์ทำให้คุณสามารถจัดแพ็กเกจแอปพลิเคชันด้วยการพึ่งพารันไทม์ทั้งหมด เพื่อให้มั่นใจว่าสามารถรันได้อย่างสม่ำเสมอในทุกสภาพแวดล้อม

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

โดยพื้นฐานแล้ว Kubernetes จัดเตรียมเฟรมเวิร์กเพื่อเรียกใช้ระบบแบบกระจายอย่างยืดหยุ่น โดยจะดูแลความต้องการในการปรับขนาด เฟลโอเวอร์ รูปแบบการปรับใช้ และอื่นๆ ตัวอย่างเช่น สามารถจัดการการปรับใช้ canary สำหรับระบบของคุณได้อย่างง่ายดาย

Kubernetes ให้คุณ:

  • การค้นหาบริการ (service discovery) และการจัดสรรภาระงาน (load balancing): Kubernetes สามารถเปิดเผยคอนเทนเนอร์โดยใช้ชื่อ DNS หรือที่อยู่ IP ของตนเอง หากทราฟฟิกไปยังคอนเทนเนอร์สูง Kubernetes สามารถปรับสมดุลโหลดและกระจายทราฟฟิกเครือข่ายเพื่อทำให้แอปพลิเคชันเสถียร
  • การจัดการพื้นที่เก็บข้อมูล: Kubernetes ช่วยให้คุณติดตั้งระบบพื้นที่เก็บข้อมูลที่คุณเลือกได้โดยอัตโนมัติ อาจเป็นที่เก็บข้อมูลในเครื่อง ผู้ให้บริการคลาวด์สาธารณะ และอื่นๆ
  • การเปิดตัว (rollouts) และการย้อนกลับ (rollbacks) อัตโนมัติ:คุณสามารถอธิบายสถานะที่ต้องการสำหรับคอนเทนเนอร์ที่ใช้งานของคุณโดยใช้ Kubernetes และสามารถเปลี่ยนสถานะจริงเป็นสถานะที่ต้องการในอัตราที่ควบคุมได้ ตัวอย่างเช่น คุณสามารถทำให้ Kubernetes เป็นอัตโนมัติเพื่อสร้างคอนเทนเนอร์ใหม่สำหรับการปรับใช้ นำคอนเทนเนอร์ที่มีอยู่ออก และนำทรัพยากรทั้งหมดมาใช้กับคอนเทนเนอร์ใหม่
  • การบรรจุถังขยะอัตโนมัติ: Kubernetes ช่วยให้คุณจัดเตรียมคลัสเตอร์ของโหนดที่สามารถใช้เพื่อเรียกใช้งานคอนเทนเนอร์ คุณบอก Kubernetes ว่าคอนเทนเนอร์แต่ละคอนเทนเนอร์ต้องการ CPU และหน่วยความจำเท่าใด และสามารถใส่คอนเทนเนอร์ลงในโหนดของคุณเพื่อใช้ทรัพยากรให้เกิดประโยชน์สูงสุด
  • การซ่อมแซมตัวเอง: Kubernetes สามารถรีสตาร์ทคอนเทนเนอร์ที่ล้มเหลว แทนที่คอนเทนเนอร์ กำจัดคอนเทนเนอร์ที่ไม่ตอบสนองต่อการตรวจสอบสถานภาพที่ผู้ใช้กำหนด และไม่โฆษณาให้ลูกค้าทราบจนกว่าจะพร้อมให้บริการ
  • การจัดการความลับ (secret) และการกำหนดค่า: Kubernetes ให้คุณจัดเก็บและจัดการข้อมูลที่ละเอียดอ่อน เช่น รหัสผ่าน โทเค็น OAuth และคีย์ SSH คุณสามารถปรับใช้และอัปเดตความลับและการกำหนดค่าแอปพลิเคชันโดยไม่ต้องสร้างอิมเมจคอนเทนเนอร์ใหม่และไม่ต้องเปิดเผยความลับในการกำหนดค่าสแต็กของคุณ

2. เหตุใด Kubernetes จึงมีความสำคัญต่อการจัดการคอนเทนเนอร์

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

ในขณะที่คอนเทนเนอร์ได้แก้ปัญหาในการทำให้ซอฟต์แวร์ทำงานได้อย่างน่าเชื่อถือในสภาพแวดล้อมการประมวลผลต่างๆ พวกเขาได้นำเสนอความซับซ้อนชุดใหม่ นี่คือที่มาของการประสานคอนเทนเนอร์กับ Kubernetes

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

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

3. Kubernetes และ Docker: ถั่วสองเมล็ดในฝัก (Two peas in a pod)

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

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

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


Kubernetes มีความโดดเด่นในฐานะมาตรฐานโดยพฤตินัยในพื้นที่การจัดการคอนเทนเนอร์ในการทำแอพ ด้วยโซลูชันที่ครอบคลุมสำหรับการจัดการปริมาณงานที่หลากหลาย ควบคู่กับชุมชนที่มีชีวิตชีวาและระบบนิเวศที่แข็งแกร่ง แม้ว่าการทำความเข้าใจ Kubernetes อาจดูน่ากลัวในตอนแรก แต่เราหวังว่าการแนะนำนี้จะปูพื้นฐานให้คุณเจาะลึกยิ่งขึ้น

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


Kubernetes คืออะไร

Docker คืออะไร
Kubernetes คือ ตอนที่ 1 : สถาปัตยกรรม (Architecture)
Kubernetes คือ ตอนที่ 2 : การติดตั้งและการกำหนดค่า Kubernetes
Kubernetes คือ ตอนที่ 3 : การควบคุม Kubernetes Workloads
Kubernetes คือ ตอนที่ 4 : บริการ (Services) และระบบเครือข่าย (Networking)
Kubernetes คือ ตอนที่ 5 : ทำความเข้าใจกับพื้นที่เก็บข้อมูล (Storage)
Kubernetes คือ ตอนที่ 6 : การจัดการข้อมูลที่ละเอียดอ่อน (Sensitive Data) ด้วย ConfigMaps และ Secrets
Kubernetes คือ ตอนที่ 7 : RBAC และ ความปลอดภัย
Kubernetes คือ ตอนที่ 8 : การบันทึก (Logging) และการตรวจสอบ (Monitoring)
Kubernetes คือ ตอนที่ 9 : แนวทางปฏิบัติที่ดีที่สุดของ Kubernetes