การแก้ไขปัญหาที่พบบ่อย

Azure Compute Solutions

Florin Angelescu

Azure Cloud Architect

ทำไมการแก้ไขปัญหาจึงสำคัญ

 

ความล้มเหลวของ Pod

การสื่อสารของ Pod

ความล้มเหลวของ Node

 

 

  • Pod อาจเริ่มต้นไม่ได้

 

  • Service อาจไม่สามารถส่งต่อ traffic ได้

 

  • Node อาจใช้ทรัพยากรหมด
Azure Compute Solutions

ทำไมการแก้ไขปัญหาจึงสำคัญ

 

แนวทางการแก้ไขปัญหา

  • แนวทางที่เป็นระบบ:
    • สังเกต
    • ระบุปัญหา
    • ทดสอบ
    • แก้ไข
  • ช่วยให้ไม่เสียเวลากับอาการแทนที่จะหาต้นเหตุที่แท้จริง
Azure Compute Solutions

ความล้มเหลวของ Pod

 

 

ความล้มเหลวของ Pod

 

 

  • Pod เริ่มต้นไม่ได้
  • สาเหตุ:
    • Container image ไม่ถูกต้อง
    • Secret ขาดหาย
    • ทรัพยากรไม่เพียงพอ
Azure Compute Solutions

ความล้มเหลวของ Pod

kubectl

  • kubectl describe pod - events
  • kubectl logs - output

Policy

  • ตรวจสอบ image pull policy
  • ตรวจสอบข้อมูลรับรอง registry

Logs

  • ตรวจสอบ log ของแอปพลิเคชัน
  • ตรวจสอบการร้องขอทรัพยากร

Probe

  • Readiness และ liveness probe
  • ตรวจจับ Pod ที่ผิดปกติและรีสตาร์ท
Azure Compute Solutions

ปัญหาเครือข่าย

 

 

การสื่อสารของ Pod

 

  • ปัญหาเครือข่าย:

    • ทำให้ Service เข้าถึง Pod ไม่ได้
    • หรือ external client ไม่สามารถเชื่อมต่อได้
  • ตรวจสอบ:

    • Service ถูกกำหนดค่าอย่างถูกต้อง
    • Selector ตรงกับ label ของ Pod
Azure Compute Solutions

ปัญหาเครือข่าย

kubectl

  • kubectl get svc
  • kubectl get endpoints

kubectl

  • Ingress controller - การกำหนดค่าเพิ่มเติม
  • TLS certificate หรือ path rule

kubectl

  • ทดสอบการเชื่อมต่อ
  • kubectl exec, curl

kubectl

  • เครื่องมือ packet capture
  • Azure Network Watcher
Azure Compute Solutions

ความท้าทายในการ Scale

 

ความล้มเหลวในการ Scale

 

 

 

  • การตั้งค่า auto-scaler ไม่ถูกต้อง
  • Node ไม่มีความจุเพียงพอ
Azure Compute Solutions

ความท้าทายในการ Scale

 

ความล้มเหลวในการ Scale

  • ตรวจสอบ metric ของ Horizontal Pod Autoscaler:
    • kubectl get hpa
  • ตรวจสอบว่าเปิดใช้งาน Cluster Autoscaler แล้ว
  • ทบทวนการร้องขอและ limit ของทรัพยากร:
    • ค่าที่จำกัดเกินไปอาจทำให้ Pod ไม่สามารถ schedule ได้
  • ตรวจสอบ quota ของ node pool และปรับ threshold
  • จำลองโหลดระหว่างการทดสอบ
  • ติดตาม scaling event ใน Azure Monitor
Azure Compute Solutions

ข้อจำกัดด้านทรัพยากร

 

ความล้มเหลวของ Node

 

  • Node อาจใช้ทรัพยากรหมดได้แก่:
    • CPU
    • Memory
    • พื้นที่ดิสก์
  • ส่งผลให้ Pod ถูก evict
  • ติดตามการใช้ทรัพยากร:
    • Azure Monitor
    • kubectl top
Azure Compute Solutions

ข้อจำกัดด้านทรัพยากร

Resources

  • การใช้ทรัพยากรเกินขีดจำกัดทำให้ระบบไม่เสถียร
  • กำหนดค่า request และ limit ที่สมเหตุสมผล

Priority

  • Taint และ toleration -> การจัดวาง Pod
  • ให้ workload ที่สำคัญมีลำดับความสำคัญก่อน

Audit

  • ตรวจสอบการจัดสรรทรัพยากรและ quota
  • ป้องกัน bottleneck

Nodes

  • Node pool หลายกลุ่มที่มีขนาด VM ต่างกัน
  • กระจาย workload ได้อย่างมีประสิทธิภาพ
Azure Compute Solutions

สรุป

 

Kubernetes

 

 

  • การแก้ไขปัญหาใน AKS ครอบคลุมการวินิจฉัย:
    • ความล้มเหลวของ Pod
    • ปัญหาเครือข่าย
    • ความท้าทายในการ Scale
    • ข้อจำกัดด้านทรัพยากร
Azure Compute Solutions

สรุป

 

Kubernetes

 

 

  • การผสาน Kubernetes tools เข้ากับ Azure:

    • ช่วยแก้ปัญหาได้รวดเร็วและรักษาความเสถียรของระบบ
  • คู่มือการแก้ไขปัญหาสำหรับทีม:

    • ตอบสนองได้อย่างสม่ำเสมอและลดเวลาในการแก้ไข
Azure Compute Solutions

มาฝึกกันเถอะ!

Azure Compute Solutions

Preparing Video For Download...