- การประมวลผลบนคลาวด์คืออะไร›
- ฮับแนวคิดการประมวลผลบนคลาวด์›
- ไมโครเซอร์วิส›
- คอนเทนเนอร์
คลัสเตอร์ Kubernetes คืออะไร
คลัสเตอร์ 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 บนโหนด หลัก คุณต้องเพิ่มไฟล์ KUBE config และปรับใช้เครือข่ายพ็อด โดยปกติแล้วจะใช้ไฟล์ YAML ก่อนที่คลัสเตอร์จะพร้อมใช้งาน คำสั ่ง kubeadm init ส่ง ออกคำสั่ง join ซึ่งสามารถคัดลอกและวางลงในบรรทัดคำสั่งของโหนดพนักงานเครื่องเสมือนอื่น ๆ ได้ สิ่งนี้ช่วยให้ Worker Node แต่ละรายการสามารถเข้าร่วมคลัสเตอร์ได้
การทำงานกับ Kubernetes
ด้วยแดชบอร์ด Kubernetes UI ผู้ปรับใช้จะสามารถสร้างและปรับใช้แอปพลิเคชันบนคลัสเตอร์ได้ สำหรับ แดชบอร์ด UI Kubernetes ให้เรียกใช้คำสั่ง kubectl proxy บนเครื่อง หลัก 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 โดยไม่จำเป็นต้องจัดหาหรือจัดการอินสแตนซ์หลักด้วยระนาบควบคุมและ ฯลฯ EKS มาพร้อมกับเครื่องมือการจัดการคลัสเตอร์และการผสานรวมที่มีประโยชน์กับเครือข่ายและบริการรักษาความปลอดภัย AWS
เริ่มต้นใช้งานคลัสเตอร์ Kubernetes บน AWS โดยการ สร้างบัญชีฟรีวันนี้