ข้ามไปที่เนื้อหาหลัก

Kubernetes เทคโนโลยี Container การสร้างระบบยุคใหม่


วิวัฒนาการสถาปัตยกรรม Kubernetes

ตอนเริ่มต้นในการพัฒนาซอฟต์แวร์ในระยะแรกอยู่ในรูปแบบที่เรียกว่า Traditional Develoment ต่อมาเริ่มมีการพัฒนาเป็น Virtualized Development และจนมาถึง Container Development แต่ล่ะระยะมีดังนี้ 

- Tradition Development
- Virtualized Development
- Container Development

- Traditional Development 

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


- Virtualized Development

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

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



- Container Development

คอนเทนเนอร์นั้นมีลักษณะการทำงานคล้ายกับ VM แต่มีคุณสมบัติการเพื่อเติมสำหรับการแชร์ระบบปฏิบัติการ (OS) ระหว่างแอปพลิเคชัน ดังนั้นถือว่าตู้คอนเทนเนอร์ขนาดเล็ก เพราะเป็นการย่อส่วนของระบบขนาดใหญ่ให้เล็กลง โดยจำกัดการทำงาน ทรัพยกรต่างๆ ที่ใช้งานเฉพาะส่วนที่จำเป็นเท่านั้น คอนเทนเนอร์จะมีระบบไฟล์ ส่วนแบ่งของ CPU หน่วยความจำ พื้นที่ประมวลผล และอื่นๆ เนื่องจากแยกออกจากโครงสร้างพื้นฐานพื้นฐาน จึงพกพาได้บนคลาวด์และการกระจายระบบปฏิบัติการ


ความหมายของ Kubernetes 

“Kubernetes” หรือ “K8s” คือ “Container Orchestration”  คือ
- เป็นรูปสถาปัตยกรรมของระบบโครงสร้างพื้นฐานทางไอที (infrastructure) ในยุคใหม่ มีลักษณะเป็นซอฟต์แวร์ที่ใช้จัดการและควบคุม  โดยใช้เทคโนโลยีที่เรียกว่า "คอนเทนเนอร์(Container)" ซึ่งถูกสร้างและพัฒนาขึ้นมาเพื่อผู้พัฒนาสามารถจัดการแพ็กเกจซอฟต์แวร์ต่างๆ ที่จำเป็นในการใช้งาน และทำการขนย้ายมันไปใช้ตามที่ต่างๆ หรือ server ต่างๆ ได้ง่ายและเป็นอิสระต่อกัน และทำการ run แต่ละคอนเทนเนอร์ในเครื่องที่ได้ทำการติดตั้งคอนเทนเนอร์นั้นๆ 
- Kubernetest เป็นซอฟต์แวร์ OpenSource พัฒนาโดย Google ที่จะมาช่วยในการจัดการคอนเทนเนอร์ เช่น Docker LXC  ช่วยให้เราสามารถติดตั้ง (Deployment) จัดสรรทรัพยากร หรือเพิ่มลดทรัพยากรแบบอัตโนมัติได้ (Managing & Scaling) นอกจากนั้นยังช่วยให้ Application ที่ทำงานอยู่บนคอนเทนเนอร์สามารถทำงานได้อย่างต่อเนื่อง ด้วยระบบที่พร้อมใช้งานตลอดเวลา (Auto Self-Healing) 

ความเป็นมาของ Kubernetes 


ต้นกำเนิดของ K8s นั้นเกิดมาจากบริษัท Google ในเรื่องจัดการ Data Center เรียกระบบนี้ว่า “Borg” ปรับมาเป็น “Kubernetes” ขึ้นมา การใช้งานมายาวนานทำให้ google พบปัญหาในเรื่องการจัดการ Data Center หลายประการ เนื่องจากมีการขยายตัวของการใช้งานที่เพิ่มมากขึ้นทุกๆ ปี 



ประโยชน์ของ Kubernetes ที่ถูกพัฒนาขึ้นอย่างอัตโนมัติ

  1. Container Clustering :  ผู้ใช้สามารถ Configuration  เพื่อสั่งระบบให้ทำงานโดยอัตโนมัติ เพียงแค่กำหนดค่าต่างๆ ที่เกี่ยวข้อง
  2. Auto Scaling : รองรับการเพิ่มหรือลดทรัพยากรได้
  3. Auto Self-healing :  HA เพื่อช่วยให้ระบบสามารถทำงาน
  4. Auto Binpacking : จัดสรรทรัพยากรสำหรับคอนเทนเนอร์
  5. Load Balancing : แบ่งการทำงานระหว่างคอนเทนนอร์ได้อย่างเหมาะสมและมีประสิทธิภาพสูงสุด
  6. Zero Downtime : รองรับการอัปเดตระบบแบบไม่มี Downtime
  7. Dashboard : มีแดชบอร์ดสำหรับควบคุมและบริหารจัดการทรัพยากร
  8. Community :  มีผู้ใช้งานจากทั่วโลกช่วยพัฒนาและอัปเดตฟีเจอร์ใหม่ อยู่ตลอดเวลา

องค์ประกอบของ Kubernetes(K8s)

  1. คัสเตอร์ (Cluster)
  2. การพัฒนา (Developmet)
  3. โหนดและพอร์ด (Node and Pod)
  4. ชุดแบบจำลอง (ReplicaSet)
  5. การบริการ (Services)



อ้างอิงแหล่งข้อมูล : 

1. openlandscape. 2022. Kubernetes คือ อะไร ? หนทางสู่การทำระบบให้แกร่งกว่าที่เคย. https://blog.openlandscape.cloud/what-is-kubernetes [online].
2. blognone. Kubernetes คืออะไร ทำไม Orchestration จึงเป็นหัวใจของ Infrastructure ยุคนี้. [online] https://www.blognone.com/node/106492.
3. skooldio. 5 ข้อดี Kubernetes ที่สาย Dev ต้องเหลียวมอง. [online]. https://blog.skooldio.com/why-use-kubernetes/. 







ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Interactive เทคโนโลยีเชิงโต้ตอบเปลี่ยนโลกเข้าสู่ยุค Metaverse

เทคโนโลยี Interactive คืออะไร คำนิยามของ เทคโนโลยี Interactive ที่สร้างและพัฒนาขึ้นสำหรับโปรแกรมหรือแอพลิเคชั่นที่เป็น Real-Time เรียกง่ายๆว่า Real-Time Programming (RTP) โดยเน้นไปยังผู้ใช้หรือมนุษย์นั้นเอง จะประกอบไปด้วย 2 องค์ประกอบ คือ ส่วนแรก เทคโนโลยี Interactive เข้าทำการเปลี่ยนแปลรูปร่าง ขนาด และรูปแบบ ซึ่งมาจาก web service อุปกรณ์ sensor ผ่านคอมพิวเตอร์ และมือถือ เป็นผสมผสานระหว่างระบบดิจิทัลและแอนนาล๊อกเข้าด้วยกัน ผ่านปุ่ม สไลด์เดอร์ หรือสวิทซ์ เพื่อการควบคุมในส่วนควบคุมทั้งหมด ที่เรียกว่า Control panel  ส่วนที่ 2  แอพลิเคชั่นที่ทำงานแบบ Real Time Application ถูกออกแบบในแนวคิดหลักของเทคโนโลยี Real Time  อ้างอิง https://interactiveimmersive.io/blog/beginner/02-interactive-technology/ เทคโนโลยีเชิงโต้ตอบที่เน้นการสร้างต้นแบบที่เร็วขึ้น มีประโยชน์อย่างมากในแอปพลิเคชันและประสบการณ์การสร้างต้นแบบ  ประเภทของเทคโนโลยี Interactive  มี 6 ประเภท 1. IoT เป็นแนวคิดจะเปลี่ยนบริการทุกบริการให้อยู่บนเครือข่ายอินเทอร์เน็ต และสามารถเชื่อมต่อเข้ากับแอพลิเคชั่นทุกแอ...

Routing Protocol คืออะไร มีประโยชน์อย่างไร ทำหน้าที่อะไร

 Routing Protocol คืออะไร มีประโยชน์อย่างไร ทำหน้าที่อะไร         ในกระบวนการเชื่อมต่อระบบเครือข่ายจะมีกระบวนการหรือกฏหนึ่งที่ทำหน้าที่ในการเชื่อมต่อระบบเครือข่ายตั้งแต่ 2 ระบบขึ้นไป เพื่อให้สามารถติดต่อสื่อสารข้อมูลระหว่างกันได้ กระบวนการนี้เรียกว่า Routing Protocol            Routing Protocol  คือ Protocol มีหน้าที่สำหรับการแลกเปลี่ยนข้อมูลเส้นทางสำหรับอุปกรณ์ค้นหาเส้นทาง หรือ Router ข้อมูลที่ส่งไปเป็น routing information ระหว่างอุปกรณ์เครือข่ายต่างๆที่ทำงานในระดับ Network Layer (Layer 3) เพื่อส่งข้อมูลแพ็กเก็จจาก ผ่านตัว Router ไปยัง IP ปลายทางได้ หรือผ่าน Router ตัวไหน โดยตรวจสอบจากได้จาก routing table หรือตารางเส้นทางนั้นเอง  ประเภทของ Routing Protocol   Interior gateway Protocol  มี 2 Type คือ   Type 1  Link State Routing Protocols Open Shortest Path Frist ( OSPF) Intermediate System to Intermediate System (IS-IS) Type 2 Distance-Vector Routing Protocols Routing Information Pro...