คลัสเตอร์ Kubernetes คืออะไร

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

ข้อมูลพื้นฐานของ Kubernetes คืออะไร

ในการทำความเข้าใจเกี่ยวกับคลัสเตอร์ Kubernetes คุณต้องเข้าใจพื้นฐานของการจัดคอนเทนเนอร์ด้วย Kubernetes ก่อน 

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

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

ต่อไป เรามาดูแนวคิด Kubernetes หลักบางอย่างกัน

พ็อด

พ็อดเป็นหน่วยที่ปรับใช้ได้แบบมาตรฐานภายใต้ Kubernetes พ็อดมีคอนเทนเนอร์อย่างน้อยหนึ่งรายการขึ้นไป และภายในพ็อด จะมีคอนเทนเนอร์ที่มีทรัพยากรระบบเดียวกัน เช่น การจัดเก็บและการเชื่อมต่อเครือข่าย แต่ละพ็อดจะได้รับที่อยู่ IP ที่ไม่ซ้ำกัน 

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

โหนด

โหนด คือแมชชีนที่เรียกใช้พ็อด อาจเป็นเครื่องเซิร์ฟเวอร์จริงหรือเซิร์ฟเวอร์เสมือน เช่น อินสแตนซ์ Amazon EC2 ส่วนประกอบบนโหนดรวมถึง:

  • Kubelet สำหรับการจัดการโหนดและคอนเทนเนอร์
  • Kube-พร็อกซีสำหรับพร็อกซีเครือข่าย
  • รันไทม์ของคอนเทนเนอร์

ต้องติดตั้งรันไทม์ของคอนเทนเนอร์ที่เข้ากันได้บนโหนดเพื่อเรียกใช้คอนเทนเนอร์ Kubernetes รองรับรันไทม์ของคอนเทนเนอร์หลายรายการ เช่น อินเทอร์เฟซรันไทม์ของคอนเทนเนอร์ Kubernetes และคอนเทนเนอร์ 

ชุดจำลองและการนำไปใช้จริง

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

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

บริการและการนำเข้าข้อมูล

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

ส่วนประกอบคลัสเตอร์ Kubernetes คืออะไร

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

ส่วนประกอบของส่วนการควบคุม ได้แก่:

  • เซิร์ฟเวอร์ Kubernetes API (kube-apiserver) ที่จัดการการสื่อสารภายในและไปยังคลัสเตอร์
  • ที่เก็บข้อมูล (etcd) เพื่อบันทึกสถานะถาวรของคลัสเตอร์
    ตัวกำหนดเวลา (Kube-Scheduler) เพื่อจัดการโหนดและทรัพยากรของพ็อด Kubernetes ที่ตามมา 

ส่วนประกอบอื่น ๆ ได้แก่ ตัวจัดการคอนโทรลเลอร์สำหรับโหนดและการควบคุมงาน (kube-controller-manager) และตัวจัดการคอนโทรลเลอร์คลาวด์สำหรับการผสานรวมกับโครงสร้างพื้นฐานระบบคลาวด์สาธารณะเฉพาะของผู้ให้บริการ (cloud-controller-manager)

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

นักพัฒนาทำงานกับคลัสเตอร์ Kubernetes อย่างไร

นักพัฒนาจะต้องดาวน์โหลดและติดตั้ง Kubernetes บน Master Node และ Worker Node ก่อน จากนั้นจะสามารถนำคลัสเตอร์บนเครื่องจริงหรือเครื่องแบบเสมือนไปใช้จริงเป็นการภายใน ทั้งในศูนย์ข้อมูลหรือในระบบคลาวด์

การติดตั้ง

สำหรับการเริ่มต้นอย่างง่ายด้วยแมชชีนเสมือน Linux บน Master Node ที่คุณเลือก (Virtual Machine) อันดับแรก ให้ติตั้ง:

  • Docker หรือซอฟต์แวร์คอนเทนเนอร์อื่น ๆ
  • คีย์ที่เก็บข้อมูลและที่เก็บโค้ดของ Kubernetes
  • แพ็กเกจ kubeadm สำหรับการเริ่มต้นระบบของคลัสเตอร์
  • แพ็กเกจ kubelet สำหรับการประสานงานโหนด
  • แพ็กเกจ kubectl สำหรับบรรทัดคำสั่งคลัสเตอร์

ดำเนินการตามขั้นตอนในแต่ละ Worker Node ที่กำหนดไว้อื่น ๆ

การเริ่มต้นคลัสเตอร์

ในการเริ่มต้นคลัสเตอร์ ให้เรียกใช้คำสั่ง kubeadm init บน Master Node คุณต้องเพิ่มไฟล์ KUBE config และปรับใช้เครือข่ายพ็อด โดยปกติแล้วจะใช้ไฟล์ YAML ก่อนที่คลัสเตอร์จะพร้อมใช้งาน คำสั่ง kubeadm init ส่งออกคำสั่งการเข้าร่วม ซึ่งสามารถคัดลอกและวางลงในบรรทัดคำสั่งของ Worker Node ของ Virtual Machine อื่นได้ สิ่งนี้ช่วยให้ Worker Node แต่ละรายการสามารถเข้าร่วมคลัสเตอร์ได้ 

การทำงานกับ Kubernetes

ด้วยแดชบอร์ด Kubernetes UI ผู้ปรับใช้จะสามารถสร้างและปรับใช้แอปพลิเคชันบนคลัสเตอร์ได้ สำหรับแดชบอร์ด Kubernetes UI ให้เรียกใช้คำสั่ง kubectl proxy บน Master Machine UI จะพร้อมใช้งานได้ที่ http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

การจัดการคลัสเตอร์ Kubernetes คืออะไร

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

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

AWS จะช่วยเหลือเกี่ยวกับข้อกำหนดของคลัสเตอร์ Kubernetes ของคุณได้อย่างไร

AWS ให้บริการระบบคลาวด์เพื่อกำหนดค่า เรียกใช้ และจัดการคลัสเตอร์ Kubernetes ของคุณ: 

  • Amazon Elastic Compute Cloud (EC2) ช่วยให้คุณจัดหาและเรียกใช้ Kubernetes ในประเภทอินสแตนซ์ที่คุณเลือก
  • Amazon Elastic Kubernetes Service (EKS) ช่วยให้คุณเริ่ม เรียกใช้ และปรับขนาด Kubernetes โดยไม่จำเป็นต้องจัดหาหรือจัดการอินสแตนซ์หลักด้วยส่วนการควบคุมและ etcd EKS มาพร้อมกับเครื่องมือการจัดการคลัสเตอร์และการผสานรวมที่มีประโยชน์กับเครือข่ายและบริการรักษาความปลอดภัย AWS

เริ่มต้นใช้งานคลัสเตอร์ Kubernetes บน AWS โดยการสร้างบัญชีฟรีวันนี้

ขั้นตอนถัดไปบน AWS

ลงชื่อสมัครใช้บัญชีฟรี

รับสิทธิ์การเข้าถึง AWS Free Tier ได้ทันที

ลงชื่อสมัครใช้งาน 
เริ่มต้นการสร้างในคอนโซล

เริ่มต้นสร้างในคอนโซลการจัดการของ AWS

ลงชื่อเข้าใช้