4 ความท้าทายของ Kubernetes Monitoring

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

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

องค์ประกอบภายในของ Kubernetes

เพื่อความเข้าใจได้ง่ายขึ้น เราจะขออธิบายโครงสร้างองค์ประกอบของ Kubernetes ด้วยรูปภาพประกอบดังนี้

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

PODS รันอยู่บนสิ่งที่เรียกว่าโหนดซึ่งเป็นเครื่อง VM หรือ Physical ก็ได้ และเมื่อโหนดรวมตัวกันเป็นกลุ่มก็จะนำไปสู่สิ่งที่เรียกว่า Clusters โดยจะมีเครื่องหนึ่งทำหน้าที่เป็นผู้รับผิดชอบหลักอย่างน้อยที่ตัวหรือ Master (ตามคำแนะนำควรมี Master มากกว่า 1 ตัวเพื่อการันตีเรื่อง HA) ส่วน Kubelet ทำหน้าที่การันตีว่าทุก Container ที่ถูกประกาศไว้ในไฟล์ PodSpec (พูดถึง อิมเมจที่ใช้ ลักษณะการได้มาของอิมเมจ ข้อกำหนดของ DNS และอื่นๆ) จะถูกรันอย่างแน่นอน

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

นอกจากนี้ยังมีเรื่องของ Replica Set ที่คอยรักษาให้มีจำนวนของ PODS ตรงตามที่กำหนดไว้เสมอ และเนื่องจาก PODS เกิดขึ้นและหายไปได้เสมอ ดังนั้น IP Address จึงไม่สเถียรทำให้การสื่อสารต้องผ่านสิ่งที่เรียกว่า Services ที่สามารถแมป IP Address ให้โลกภายนอกเข้าถึงได้ โดยไม่ต้องรู้ว่าเบื้องหลังมี PODS เกิดขึ้นและหายไปอย่างไร

4 ความท้าทายของ Kubernetes Monitoring

จากข้อมูลข้างต้นจะเห็นได้ว่า Kubernetes มีความซับซ้อนอยู่ไม่น้อยเลย ซึ่งนำไปสู่ความท้าทาย 4 เรื่อง ที่ท่านต้องคำนึงถึงเมื่อต้องการทำ Monitoring คือ

1.) กลไกการสร้าง Tag และ Label กลายเป็นเรื่องที่จำเป็นเพราะจะช่วยให้เข้าใจข้อมูลที่เก็บมาได้ เช่น Backend, Frontend, Staging เป็นต้น

2.) ในระบบของ Kubernetes คำถามที่ตอบได้ยากที่สุดคือ “แอปพลิเคชันของท่านรันอยู่ที่ใดกันแน่” แม้ว่าเราจะสามารถติดตามข้อมูลด้วยตนเองได้ แต่ธรรมชาติของ Container ที่เกิดและหายไปอยู่เสมอทำให้การติดตามไม่ง่ายนัก ด้วยเหตุนี้เองจึงมีเครื่องมือทำหน้าที่ช่วยค้นหาบริการ (Service Discovery) ซึ่งจะคอยตรวจสอบความเปลี่ยนแปลงใน Pod และการคอนฟิค Container กล่าวได้ว่า Service Discovery เป็นสิ่งที่ขาดไม่ได้สำหรับการทำ Monitoring

3.) Kubernetes เวอร์ชัน 1.3 เป็นต้นมา ความสามารถ ‘Kubernetes Cluster Federation’ ได้ทลายขีดจำกัดการใช้งานของ Kubernetes ให้กระจายออกในหลายดาต้าเซนเตอร์หรือข้ามผู้ให้บริการคลาวด์ได้ แต่เช่นกันความท้าทายที่เกิดขึ้นคือการรวมข้อมูลจากแหล่งต่างๆเข้าด้วยกัน

4.) การมาถึงของ Kubernetes ได้เพิ่มเลเยอร์ใหม่ที่สูงกว่า Container ย้อนกลับไปสมัยอดีตที่เรามีเพียงโฮสต์และแอปพลิเคชัน คำถามของ Monitoring คือทราบว่าแอปอะไรรันอยู่บนโฮสต์ แต่คำถามเหล่านี้ค่อยๆยากขึ้นเรื่อยมา โดยเฉพาะ Kubernetes ที่เราไม่สามารถทราบได้เลยว่ามี Container หรือแอปใดที่รันอยู่บนโฮสต์นั้น ผู้ดูแลต้องมีเครื่องมือที่สามารถเข้าถึงภายใน Kubernetes อย่างแท้จริง

สามารถดาวน์โหลด Whitepaper “How to monitoring Kubernetes effectively” ได้ที่https://www.datadoghq.com/resources/effective-kubernetes-monitoring-whitepaper/

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

Datadog เครื่องมือ Kubernetes Monitoring ที่ช่วยให้งานของคุณง่ายขึ้นเยอะ!

เครื่องมือ Monitoring ที่ดีที่สุดคือเครื่องมือที่เข้าใจได้ง่ายที่สุดตั้งแต่ครั้งแรก ซึ่ง Datadog ได้ออกแบบบริการ Kubernetes Monitoring ด้วยจุดประสงค์นี้ เพียงแค่หน้า Overview ก็นำไปสู่การไขปัญหามากมาย

  • จากภาพประกอบจะเห็นได้ว่าหน้า Overview ได้ฉายภาพให้เห็นถึงจำนวนของสิ่งที่เกี่ยวข้องได้ทั้งองค์กร ทำให้ทีมงานมองเห็นภาพรวมได้ตรงกันและสามารถกดเพื่อขยายผลปลีกย่อยต่อไปได้ แม้แต่ทีมงานหน้าใหม่ก็สามารถเข้ามาเริ่มเรียนรู้ได้ง่ายๆจากหัวข้อนี้ ผู้ใช้งานสามารถเข้าไปเจาะลึกรายละเอียดภายในได้เช่นจากตัวอย่างในหน้ากรอบของ PODS เมื่อมีการกดเข้าไปจะพบกับลิสต์รายการของ PODS ที่ขึ้นสถานะ CrashLoopBackOff ซึ่งหมายถึงเกิดปัญหาบางอย่างทำให้ POD มีการรีสตาร์ทอยู่เรื่อยๆ ทั้งนี้ Datadog สามารถแนะนำวิธีการแก้ปัญหาที่พบได้ทั่วไปให้แก่ผู้ใช้งานได้ 
  • มีหน้าแนะนำ Best Practice ได้ว่าปัญหาควรถูกแก้ไขอย่างไร โดยมีการจัดหมวดหมู่ปัญหาที่พบได้บ่อยเชื่อมโยงเข้ากับสถานการณ์ขององค์กร ที่สามารถนำไปสู่ต้นตอของปัญหาได้ต่อไป
  • ต้องยอมรับว่าปัญหาสามารถมองได้จากหลายมุม ทำให้ผู้ที่ยังไม่เชี่ยวชาญอาจจะนึกภาพไม่ออกว่าควรจะใช้แดชบอร์ดรูปแบบใด ซึ่งในหน้า Overview ท่านสามารถเลือกแดชบอร์ดแนะนำที่เสมือนเป็นทางลัดให้ตรงไปถึงปัญหาที่ต้องการได้
  • การใช้งานทุกเครื่องมือจะต้องมีการตั้งค่าเสียก่อนเป็นเรื่องปกติ ในกรณีของเครื่องมือ Monitoring ท่านก็ต้องกำหนดก่อนว่าจะติดตามข้อมูลอะไร ซึ่งมีปัจจัยมากมาย ในกรณีที่ไม่ทราบหน้าจอแนะนำในส่วน Overview สามารถช่วยท่านเริ่มต้นได้ง่ายขึ้น
  • การเข้าใจความสัมพันธ์ระหว่างองค์ประกอบในระบบเป็นเรื่องสำคัญอย่างยิ่ง ซึ่งความสามารถ Visualize จะทำให้ผู้ใช้งานเข้าใจความสัมพันธ์ต่างๆจากแผนภาพ โดยเฉพาะกับน้องใหม่ของทีมที่อาจเพิ่งเข้ามาร่วมงานก็จะเข้าใจได้ทันที ตลอดจนยังช่วยในเรื่องการวิเคราะห์คอนฟิคว่าดีพอหรือยัง เช่น สิทธิ์การแก้ไขเปลี่ยนแปลงคลัสเตอร์ ที่เราไม่จำเป็นต้องเข้าไปแกะเนื้อหาใน YAML เลย นอกจากนี้ยังสามารถทราบได้ว่าแต่ละ PODS มีการคอนฟิคการสื่อสารให้คุยกับส่วนไหนได้บ้าง เพราะหากตั้งค่าได้ไม่ดีการทำงานก็จะไม่ถูกต้องหรือใช้การไม่ได้เลย
  • การกำหนดสิทธิ์ใน Kubernetes เป็นความท้าทายอย่างยิ่ง จากคอนเซปต์การทำงานภายในเช่น PODS, Cluster และ Namespace แต่ผู้ใช้งาน Datadog หมดห่วงกับเรื่องเหล่านี้ไปได้เลย เพราะสามารถตั้งค่าอย่างละเอียดด้วยสิทธิ์หลายระดับว่าจะกระทำการใดกับทรัพยากรใดได้บ้าง มากกว่านั้นยังครอบคลุมไปถึงการสร้าง Policy การใช้งานให้ Storage ได้อีกด้วย
  • ความรู้คือหัวใจในทุกเรื่องราว หากผู้ใช้งานยังไม่มีความมั่นใจหรืออื่นใดสามารถเรียนรู้เพิ่มเติมจาก Datadog ได้ในหลายช่องทางทั้งเอกสารคู่มือ คอร์สเรียน หรือบล็อก

ท่านใดสนใจเครื่องมือของ Datadog สามารถรับสิทธิ์ทดลองใช้งานเป็นเวลา 14 วัน เพียงลงทะเบียนได้ที่ https://www.datadoghq.com/blog/unify-kubernetes-insights-with-the-kubernetes-overview-page/#

ท่านใดสนใจติดต่อทีมงาน Datadog Thailand เพื่อขอคำปรึกษาหรือการสาธิตโซลูชันได้ที่นี่

ที่มาและเครดิตรูปภาพ : 

https://www.datadoghq.com/blog/unify-kubernetes-insights-with-the-kubernetes-overview-page/#

https://www.datadoghq.com/blog/the-power-of-tagged-metrics/

https://www.datadoghq.com/blog/navigate-kubernetes-resources-with-live-containers/


About nattakon

จบการศึกษา ปริญญาตรีและโท สาขาวิศวกรรมคอมพิวเตอร์ KMITL เคยทำงานด้าน Engineer/Presale ดูแลผลิตภัณฑ์ด้าน Network Security และ Public Cloud ในประเทศ ปัจจุบันเป็นนักเขียน Full-time ที่ TechTalkThai

Check Also

พบ 47 หัวข้อสัมมนาด้าน Cybersecurity และ Data Privacy ในงาน NCSA Thailand National Cyber Week 2023 วันที่ 17 – 18 กุมภาพันธ์ ณ สามย่านมิตรทาวน์

สำนักงานคณะกรรมการการรักษาความมั่นคงปลอดภัยไซเบอร์แห่งชาติ (สกมช.) ขอเชิญเหล่าผู้บริหารและผู้ปฏิบัติงานด้าน Cybersecurity รวมถึงนักเรียนนักศึกษาและประชาชนที่สนใจ เข้าร่วมสัมมนาและฟังบรรยายในงาน Cybersecurity Expo ระดับชาติ “Thailand National Cyber Week 2023” เพื่อแลกเปลี่ยนความรู้และอัปเดตเทรนด์ด้าน …

สกมช. จัดงานเปิดตัว “Thailand National Cyber Week 2023” เสริมความแข็งแกร่งด้านความมั่นคงปลอดภัยไซเบอร์ พร้อมสร้างเครือข่ายป้องกัน รับมือ ลดความเสียหายให้กับประเทศ

สำนักงานคณะกรรมการการรักษาความมั่นคง ปลอดภัยไซเบอร์แห่งชาติ (สกมช.) นำทัพแถลงข่าวเปิดตัวการจัดงาน “นิทรรศการสัปดาห์วิชาการด้านความ มั่นคงปลอดภัยไซเบอร์ปี 2566 (Thailand National Cyber Week 2023)” ในวันที่ 17 – …