วิวัฒนาการสถาปัตยกรรม Kubernetes
- Traditional Development
ในระยะเริ่มแรกของการพัฒนาแอปพลิเคชันสำหรับการใช้งาน องค์กรและผู้ทำการพัฒนาจะนำแอปพลิเคชั่นไปทำงานบนเครื่องเซิร์ฟเวอร์จริง โดยยังไม่มีวิธีกำหนดการใช้ทรัพยากรต่างๆ บนเซิร์ฟเวอร์ ทำให้เกิดปัญหาการใช้งานมีประสิทธิภาพที่ต่ำลงเมื่อเซิรฟ์เวอร์นั้น มีการให้บริการหรือใช้งานงานแอพลิเคชั่นหลายบริการ กล่าวคือ แอปพลเคชั่นบางตัวใช้ทรัพยากร ram hd เป็นจำนวนมากจนมีผลต่อการทำงานของแอพลเคชั่นอื่นๆตามมาแต่สิ่งนี้ไม่ได้ปรับขนาดเนื่องจากมีการใช้ทรัพยากรน้อยเกินไป และมีค่าใช้จ่ายสูงสำหรับองค์กรในการบำรุงรักษาเซิร์ฟเวอร์จริงจำนวนมาก
เป็นโซลูชันสำหรับการจำลองเครื่องเสมือน ซึ่งอนุญาตให้คุณรัน Virtual Machines (VM) หลายเครื่องบน CPU ของเซิร์ฟเวอร์จริงเครื่องเดียว ช่วยให้สามารถแยกการทำงานของแอปพลิเคชันระหว่าง VMs ให้มีระดับความปลอดภัย ทำให้ข้อมูลของแอปพลิเคชันหนึ่งไม่สามารถเข้าถึงได้โดยอิสระจากแอปพลิเคชันอื่น
การจำลองเครื่องเสมือนช่วยให้สามารถใช้ทรัพยากรในเซิร์ฟเวอร์จริงได้ดีขึ้นและช่วยให้สามารถปรับขนาดได้ดีขึ้น เนื่องจากเราสามารถเพิ่มหรืออัปเดตแอปพลิเคชันได้อย่างง่ายดาย ลดค่าใช้จ่ายด้านฮาร์ดแวร์ และอื่นๆ อีกมากมาย และคุณสามารถแนะแนวทางการใช้ชุดของทรัพยากรทางกายภาพเป็นคลัสเตอร์ของเครื่องเสมือนแบบใช้แล้วทิ้งคอนเทนเนอร์นั้นมีลักษณะการทำงานคล้ายกับ VM แต่มีคุณสมบัติการเพื่อเติมสำหรับการแชร์ระบบปฏิบัติการ (OS) ระหว่างแอปพลิเคชัน ดังนั้นถือว่าตู้คอนเทนเนอร์ขนาดเล็ก เพราะเป็นการย่อส่วนของระบบขนาดใหญ่ให้เล็กลง โดยจำกัดการทำงาน ทรัพยกรต่างๆ ที่ใช้งานเฉพาะส่วนที่จำเป็นเท่านั้น คอนเทนเนอร์จะมีระบบไฟล์ ส่วนแบ่งของ CPU หน่วยความจำ พื้นที่ประมวลผล และอื่นๆ เนื่องจากแยกออกจากโครงสร้างพื้นฐานพื้นฐาน จึงพกพาได้บนคลาวด์และการกระจายระบบปฏิบัติการ
ความหมายของ Kubernetes
ความเป็นมาของ Kubernetes
ต้นกำเนิดของ K8s นั้นเกิดมาจากบริษัท Google ในเรื่องจัดการ Data Center เรียกระบบนี้ว่า “Borg” ปรับมาเป็น “Kubernetes” ขึ้นมา การใช้งานมายาวนานทำให้ google พบปัญหาในเรื่องการจัดการ Data Center หลายประการ เนื่องจากมีการขยายตัวของการใช้งานที่เพิ่มมากขึ้นทุกๆ ปี
ประโยชน์ของ Kubernetes ที่ถูกพัฒนาขึ้นอย่างอัตโนมัติ
- Container Clustering : ผู้ใช้สามารถ Configuration เพื่อสั่งระบบให้ทำงานโดยอัตโนมัติ เพียงแค่กำหนดค่าต่างๆ ที่เกี่ยวข้อง
- Auto Scaling : รองรับการเพิ่มหรือลดทรัพยากรได้
- Auto Self-healing : HA เพื่อช่วยให้ระบบสามารถทำงาน
- Auto Binpacking : จัดสรรทรัพยากรสำหรับคอนเทนเนอร์
- Load Balancing : แบ่งการทำงานระหว่างคอนเทนนอร์ได้อย่างเหมาะสมและมีประสิทธิภาพสูงสุด
- Zero Downtime : รองรับการอัปเดตระบบแบบไม่มี Downtime
- Dashboard : มีแดชบอร์ดสำหรับควบคุมและบริหารจัดการทรัพยากร
- Community : มีผู้ใช้งานจากทั่วโลกช่วยพัฒนาและอัปเดตฟีเจอร์ใหม่ ๆ อยู่ตลอดเวลา
ความคิดเห็น
แสดงความคิดเห็น