Skip to main content
0
Computer SystemProgramming Concept

Kubernetes แบบไว ๆ สำหรับมือใหม่

เชื่อว่าเหล่ามือใหม่สายเดฟ คงเคยได้ยินคำว่า Kubernetes กันมาบ้าง โดยเฉพาะใครที่ใช้ Docker อยู่ด้วย ว่าแต่มันคืออะไรล่ะ? วันนี้ borntoDev จะมาสรุป ให้ทุกคนอ่านเองค่า

เขียนโดย
Phanpaporn Z. – BorntoDev Co., Ltd.

คุ้นจังคำว่า Container แต่มันคืออะไรนะ?

ก่อนจะไปพูดถึง Kubernetes ขอพูดถึง Container สักนิดแบบเร็ว ๆ ดีกว่า

Image from Kubernetes

ภาพข้างต้นจะพูดถึงวิวัฒนาการจากยุค Traditional Deployment ที่จะติดตั้ง OS และ App ทั้งหมดบนตัวเครื่อง Server จริง จึงมีปัญหาเรื่องแบ่งและจัดการ Resource ให้แต่ละ App กระทั่งปรับไปสู่ยุค Virtualized Deployment หรือยุคของ VM ที่จะจำลองเครื่องเสมือนหลาย ๆ เครื่องบน Server จริง 1 ตัว ทำให้เราบริหารจัดการ Resource ได้ดียิ่งขึ้น

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

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

และเจ้าตลาด Container ยอดนิยมในตอนนี้ คงจะหนีไม่พ้น Docker ชื่อที่เรามักได้ยินกันบ่อย ๆ ยังไงล่ะ!

Image by dendoktoor from Pixabay

เอาล่ะ พอรู้จัก Container กันแล้ว เราก็กลับมาที่ Kubernetes เครื่องมือยอดฮิตแห่งวงการ DevSecOps กันเถอะ

 

Kubernetes คืออะไร?

Kubernetes หรือที่มักเรียกย่อ ๆ ว่า “K8s” ไม่ก็ “Kube” นั้นเป็นศัพท์ภาษากรีก แปลว่า ผู้ถือหางเสือเรือ ดังนั้นจึงเป็นเครื่องมือที่เปรียบดั่งผู้สั่งการของเหล่า Container นั่นเอง พัฒนาขึ้นโดย Google และเป็น Open Source ด้วย โดย K8s จะใช้เพื่อจัดการ Container ในเรื่อง Deployment และ Scaling Application แบบอัตโนมัติ เพื่อให้การทำงานระบบเป็นไปอย่างมีประสิทธิภาพมากขึ้น


Kubernetes ทำอะไรได้บ้าง?

แน่นอนว่าเมื่อซอฟต์แวร์ของเราถูก Deploy ขึ้นสู่ Production แล้ว ก็คงมีหลาย ๆ Containers และ Servers ที่ต้องดูแล การจัดการ Container แต่ละตัวจึงเป็นเรื่องที่ยากยิ่งขึ้น เช่น จะเอา Container ไปรันที่เครื่องไหนดี? เราจะ Scale ระบบยังไงถ้ามี Workload เข้ามา? หรือถ้ามีสักเครื่องพังล่ะ? ทั้งหมดนี้คือสิ่งที่ K8s จะมาช่วยเรา

ฟีเจอร์หลัก ๆ ที่ K8s มีก็คือ Scaling เพื่อจัดการ Traffic ภายในระบบแบบอัตโนมัติ โดยลดหรือเพิ่ม Resource ให้กับแต่ละ Container ตาม Load ที่มีได้อย่างเหมาะสม นอกจากนี้ ถ้ามี Containers ไหนทำงานได้ไม่ถูกต้อง ไม่ตอบสนอง หรือเครื่องไหนเกิดพังขึ้นมา K8s ก็ช่วยจัดการได้ ไม่ว่าจะ Kill ทิ้ง ทำการ Restart หรือสร้างใหม่ เพื่อให้การทำงานในระบบเป็นไปตามปกติ

อ่านฟีเจอร์ของ K8s เพิ่มเติมได้ที่ https://kubernetes.io/

ซึ่งการจะ Scale หรือ Limit รวมถึงการสร้าง Cluster และ Container หรืออยากจะทำอะไรบ้างนั้น เราสามารถ Config เพื่อจัดการสิ่งเหล่านั้นได้ตามที่ต้องการเลย

 

Kubernetes เหมาะกับระบบแบบไหน?

แน่นอนว่า จากที่กล่าวมาในหัวข้อข้างต้น ระบบที่เหมาะกับการใช้ K8s ก็คงจะหนีไม่พ้น ระบบใหญ่ ๆ ที่ต้องการ Scalable เพื่อการรองรับ Workload ที่เข้ามา และระบบที่เป็นแบบ Microservice Architecture เพื่อให้จัดการกับ Services ที่มีอยู่หลายตัวได้มีประสิทธิภาพยิ่งขึ้น

เพราะแบบนั้น บางที K8s ก็อาจจะไม่ได้ตอบโจทย์กับระบบเล็ก ๆ ที่ไม่ได้ต้องการเรื่อง Scalable ขนาดนั้น รวมไปถึงระบบที่เป็น Monolithic Architecture เพราะตัวระบบไม่ได้แบ่งเป็นสัดส่วน ดังนั้นความสามารถที่ K8s นี้จึงอาจจะไม่ตอบโจทย์เท่าไหร่

Image by Pexels from Pixabay


เป็นยังไงกันบ้างกับ “Kubernetes แบบไว ๆ” ที่เราเอามาฝากกันในวันนี้ ด้วยความสามารถที่ K8s มี จึงไม่แปลกที่จะกลายเป็นเครื่องมือสำคัญที่สาย DevSecOps ควรศึกษา แต่บทความนี้เป็นแค่เพียงข้อมูลเบื้องต้นเท่านั้น ถ้าใครสนใจศึกษาเพิ่มเติม บนเพจ borntoDev เคยทำโพสต์ชี้แหล่งเรียน K8s สำหรับมือใหม่ไว้ด้วยนะ >>
อยากเรียน Kubernetes แบบจัดเต็มต้องนี่ !!

อ่านรายละเอียดเพิ่มเติมเกี่ยวกับ K8s >> Kubernetes Docs

รวมคำสั่งสำหรับการใช้งาน K8s >>  Kubernetes Cheat Sheet

หากคุณสนใจพัฒนา สตาร์ทอัพ แอปพลิเคชัน
และ เทคโนโลยีของตัวเอง ?

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

Phanpaporn Zheng

Author Phanpaporn Zheng

More posts by Phanpaporn Zheng

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

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

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

  • คุกกี้สำหรับการติดตามทางการตลาด

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

บันทึกการตั้งค่า