ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บน Platform

RUK-COM PAAS / KUBERNETES HOSTING

การแก้ไขปัญหา Cluster

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

ปรับปรุงตามเอกสาร Platform ปัจจุบัน

ตรวจสอบชื่อเมนู ตัวเลือก และข้อกำหนดล่าสุดจากเนื้อหาภาษาอังกฤษในหน้าเดียวกันก่อนดำเนินการกับระบบจริง

วัตถุประสงค์

บทความนี้อธิบายการแก้ไขปัญหา Cluster บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง

ก่อนเริ่มดำเนินการ

  • เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
  • ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
  • สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production

แพคเกจCluster Kubernetesโดย Ruk-Com เป็นผลิตภัณฑ์ที่ซับซ้อนมากซึ่งมีหลายขั้นตอนที่จำเป็นในการตั้งค่าโซลูชัน ด้วยเหตุนี้การกระทำแต่ละอย่างอาจล้มเหลวเนื่องจากสาเหตุหลายประการซึ่งควรวิเคราะห์เพื่อป้องกันไม่ให้เกิดปัญหาในอนาคต ด้านล่างนี้เราจะสรุปขั้นตอนการแก้ปัญหาหลักระหว่างขั้นตอนต่าง ๆ และสำหรับ Log ไฟล์หลาย ๆ ไฟล์:

การติดตั้ง K8s

การติดตั้ง Kubernetes cluster เป็นกระบวนการที่ซับซ้อน แต่เป็นแบบอัตโนมัติทั้งหมดซึ่งมีกลไกการจัดการข้อผิดพลาดอยู่แล้ว Platform จะประมวลผลปัญหาที่พบบ่อยโดยอัตโนมัติและแสดงสาเหตุที่แท้จริงใน Dashboard โดยตรง ในกรณีนี้สำหรับปัญหาที่ซับซ้อนมากขึ้นคุณสามารถกดปุ่มส่งรายงานไปยังทีมสนับสนุนผ่านวิดเจ็ต (widget) ที่เหมาะสม

รายงานดังกล่าวประกอบด้วย log การติดตั้ง, ข้อความแสดงข้อผิดพลาดและข้อมูลการ Debug อื่น ๆ ทั้งหมดที่จำเป็น

นอกจากนี้ Package จะตรวจสอบส่วนประกอบ Cluster ทั้งหมดโดยอัตโนมัติหลังการติดตั้ง รายละเอียดที่เกี่ยวข้องสามารถดูได้จากไฟล์ /var/log/k8s-health-check.log บน Node หลัก (master node) Script ยูทิลิตี้เฉพาะจะตรวจสอบความสมบูรณ์ของส่วนประกอบต่อไปนี้: Weave CNI Plugin, Ingres Controller, Metrics Server, Kubernetes Dashboard, Node Problem Detector, Monitoring Tools, Remote API, NFS Storage, Sample App

หากตัวตรวจสอบประสิทธิภาพการทำงานไม่สามารถตรวจสอบสถานะ Running ของส่วนประกอบได้ การแจ้งเตือนที่เหมาะสมจะแสดงในกรอบติดตั้งสำเร็จ (success) ในตัวอย่างนี้คำเตือนดังกล่าวไม่ได้เกิดจากความผิดปกติของ Cluster เสมอไป (เช่น การ deploy อาจอยู่ระหว่างการดำเนินการ) คุณสามารถรันคำสั่ง kubectl get pods –all-namespaces เพื่อตรวจสอบสถานะของพ็อด (pod) หากทั้งหมดกำลังทำงานอยู่ (Running) แสดงว่า Cluster ของคุณทำงานได้ดี มิฉะนั้นให้ติดต่อฝ่ายสนับสนุน Platform และแนบบันทึก (log) ที่เกี่ยวข้องกับ K8 จาก Directory /var/log

การติดตามกิจกรรม

คุณสามารถใช้ kubectl หรือ Kubernetes Dashboard เพื่อติดตามและวิเคราะห์เหตุการณ์สำหรับเนมสเปซ (namespace) เฉพาะหรือทั้งหมดในที่เดียว (ต้องมีการสิทธิ์ที่เพียงพอ):

  • กิจกรรมใน Kubernetes Dashboard
  • ตัวอย่างผลลัพธ์จากคำสั่ง kubectl get events -n $namespaceภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

บันทึกพ็อด

หลังจากกำหนดเวลาให้พ็อดทำงานบน Node ว่างคุณสามารถทำตาม log ที่เหมาะสมได้ทาง:

  • Dashboard Kubernetes- ปที่หน้า pod แล้วคลิกปุ่ม Logs ที่มุมขวาบน
  • คิวเบคเทิล- ใช้คำสั่งสำหรับการจัดการพ็อด

ตัวอย่างเช่น log เหล่านี้สามารถช่วยค้นหาสาเหตุที่แท้จริงของเหตุการณ์ “Back-off restart failed container” สำหรับพ็อดของคุณได้