ert-logo

Kubernetes

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

 

Kubernetes

 

Kubernetes คืออะไร 

 

Kubernetes เรียกย่อๆว่า K8s เป็น Open Source Orchestration Tool ที่ออกแบบมาเพื่อทำให้การปรับใช้ การปรับขนาด และการจัดการแอปพลิเคชัน Container เป็นไปโดยอัตโนมัติ Kubernetes ถูกพัฒนาโดย Google และได้บริจาคให้กับ Cloud Native Computing Foundation (CNCF) ในเวลาต่อมา Kubernetes มอบ Framework ที่มีประสิทธิภาพสำหรับการจัดการทรัพยากรของโครงสร้างพื้นฐานที่ซับซ้อนและยังช่วยให้แอปพลิเคชันสามารถทำงานบน Container ได้ตลอดเวลาอีกด้วย 

 

เข้าใจแนวคิดหลักของ Kubernetes 

 

โครงสร้างของ Kubernetes

 

Kubernetes ประกอบไปด้วย Master Node และ Worker Nodes ตัว Master Node จะจัดการการทำงานของ Cluster ทั้งหมด ในขณะที่ Worker Nodes จะทำหน้าที่ Run Container 

 

ส่วนประกอบของ Master Node 

 

API Server 

 

  • เป็นจุดเริ่มต้นของการติดต่อกับ Cluster ทั้งหมด โดยจะทำหน้าที่คอยตรวจสอบและประมวลผลคำขอของ API 

 

Etcd 

 

  • ระบบ Distributed Key Value Store ทำหน้าที่เก็บรักษาข้อมูลต่างๆที่ใช้ในการบริหารจัดการ Cluster ทั้งหมด 

 

Scheduler 

 

  • ทำหน้าที่กำหนด Pod ที่จะไปอยู่ใน Node เพื่อหา Node ที่มีประสิทธิภาพและความพร้อมใช้งานกับ Pod มากที่สุด 

 

Controller Manager 

 

  • ทำหน้าที่ตรวจสอบสถานะของ Cluster โดยจะจัดการการทำงานต่างๆ เช่น การจำลอง Pod เป็นต้น 

 

ส่วนประกอบของ Worker Node 

 

Kubelet 

 

  • เป็นสื่อกลางที่คอยติดต่อระหว่าง Master Node และ Worker Node โดยจะทำหน้าที่จัดการสถานะของ Nodeแต่ละตัวภายใน Cluster และตรวจสอบให้แน่ใจว่า Container ที่ทำงานบนในแต่ละ Node สามารถทำงานได้อย่างถูกต้อง 

 

Kube Proxy 

 

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

 

Container Runtime 

 

  • ทำหน้าที่รับผิดชอบการจัดการกับทรัพยากรที่จำเป็นสำหรับ Containers บน Pod นอกจากนี้ยังช่วยจัดการเรื่องเครือข่าย การจัดเก็บข้อมูลและด้านอื่นๆที่ช่วยให้ Containers สามารถทำงานได้ดียิ่งขึ้น โดย Container Runtime ที่พบได้บ่อยมี Docker, Container, rkt และอื่น ๆ 

 

Pod 

 

  • หน่วยที่มีความสามารถในการประมวลผลที่เล็กที่สุดใน Kubernetes โดยภายใน Pod จะประกอบไปด้วย Container และทรัพยากรของ Container เช่น IP Address  และ Storage เป็นต้น 

 

ReplicaSets and Deployments 

 

  • ReplicaSets ทำหน้าที่กำหนดจำนวนของ Pod ที่ต้องการให้มีการทำงาน ส่วนเจ้าตัว Deployments จะทำหน้าที่เป็นตัวกำหนดว่าต้องการ ReplicaSet กี่ชุด และในแต่ละ pods ต้องมีอะไรอยู่ข้างในบ้าง 

 

Services and Networking 

 

  • ทำหน้าที่กระจาย Load Balance ไปยัง Pod เพื่อให้มั่นใจได้ว่าแอปพลิเคชันจะยังคงสามารถเข้าถึงได้แม้ว่า Pod จะถูกสร้างใหม่หรือย้ายออกไปก็ตาม และในส่วนของ Networking จะเกี่ยวข้องกับการจัดการการสื่อสารระหว่าง Pod, Service และทรัพยากรเครือข่ายอื่นๆภายใน Cluster โดย Kubernetes จะใช้ Flat Network Model ซึ่ง Pod แต่ละอันจะได้รับที่อยู่ IP ของตัวเองและสามารถสื่อสารโดยตรงกับ Pod อื่น ๆได้เลย 

 

ประโยชน์ของ Kubernetes

1. Scalability 

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

 

2.High Availability 


  • Kubernetes รองรับการ Load Balance โดยอัตโนมัติ ทำให้แอปพลิเคชันจะยังคงใช้งานได้แม้ว่า Node หรือ Container บางตัวจะล้มเหลวก็ตาม  

 

3.Container Orchestration 

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

 

4.Ecosystem and Community 

  • Kubernetes มีเครื่องมือและปลั๊กอินมากมายที่ช่วยปรับปรุงฟังก์ชันการทำงาน รวมถึงมีชุมชนขนาดใหญ่ (Community) ที่คอยช่วยกันพัฒนาและสนับสนุนอย่างต่อเนื่อง 

______________________________________________________________________________ 

Ref: https://en.wikipedia.org/wiki/Kubernetes 



Leave a Reply

Your email address will not be published. Required fields are marked *

The Enterprise Resources Training Co.,Ltd. 2922/135-136, 3rd Fl. Room 331-332, Charn Issara Tower II, New Petchburi Road, Bangkapi, Huaykwang, Bangkok 10320
PRIVACY & COOKIES

© 2023 · The Enterprise Resources Training Co.,Ltd

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

Privacy Preferences

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

Allow All
Manage Consent Preferences
  • Always Active

Save