0Pricing
Kubernetes Basics · บทเรียน

การแก้ไขข้อบกพร่องของ Pod และ Service

ใช้คำสั่ง kubectl และเครื่องมืออื่น ๆ เพื่อแก้ไขข้อบกพร่องของ Pod ที่ทำงานผิดปกติและปัญหาการเชื่อมต่ออย่างมีประสิทธิภาพ

การแก้ไขข้อบกพร่องของ Pod และ Service เป็นบทเรียน Kubernetes Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kubernetes Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดการแก้จุดบกพร่องจึงสำคัญ

เมื่อแอปพลิเคชันทำงานผิดปกติบน Kubernetes การแก้จุดบกพร่องคือพลังพิเศษของคุณ เพราะช่วยให้เข้าใจว่าเกิดอะไรขึ้นและจะแก้ไขอย่างไร

สัญญาณของปัญหาที่พบบ่อย ได้แก่:

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

เราจะเรียนรู้เครื่องมือสำคัญสำหรับวิเคราะห์ปัญหาเหล่านี้

ชุดเครื่องมือแก้จุดบกพร่อง kubectl

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

คำสั่งสำคัญที่เราจะสำรวจในวันนี้ ได้แก่:

  • kubectl describe: ดูข้อมูลทรัพยากรโดยละเอียด
  • kubectl logs: ดูผลลัพธ์จากคอนเทนเนอร์
  • kubectl exec: เรียกใช้คำสั่งภายในคอนเทนเนอร์
  • kubectl port-forward: เข้าถึงบริการจากเครื่องภายในเครื่อง

เมื่อเชี่ยวชาญคำสั่งเหล่านี้ คุณจะกลายเป็นผู้เชี่ยวชาญด้านการแก้จุดบกพร่อง Kubernetes

เจาะลึกด้วย kubectl describe

คำสั่ง kubectl describe คือจุดเริ่มต้นสำหรับดูข้อมูลโดยละเอียดของทรัพยากร Kubernetes ทุกประเภท โดยเฉพาะพ็อด

คำสั่งนี้แสดงข้อมูลจำนวนมาก เช่น เหตุการณ์ สถานะ ที่อยู่ IP โวลุม และรายละเอียดคอนเทนเนอร์ ให้มองหาส่วน 'Events' ด้านล่างเพื่อหาเบาะแส

kubectl describe pod my-nginx-pod

ทำความเข้าใจเหตุการณ์ในคลัสเตอร์

เหตุการณ์มีความสำคัญต่อการทำความเข้าใจสิ่งที่เกิดขึ้นกับพ็อดหรือทรัพยากรอื่น ๆ เพราะบอกลำดับเรื่องราวตั้งแต่การสร้าง การจัดกำหนดการ ข้อผิดพลาด และเหตุการณ์อื่น ๆ

คุณสามารถดูเหตุการณ์ของทรัพยากรเฉพาะรายการได้โดยใช้ describe หรือดูเหตุการณ์ทั่วทั้งคลัสเตอร์ด้วย kubectl get events

kubectl get events --sort-by='.lastTimestamp'

ถอดรหัสบันทึกของคอนเทนเนอร์

โดยปกติแอปพลิเคชันจะพิมพ์ข้อความสำคัญ ข้อผิดพลาด และข้อมูลการแก้จุดบกพร่องไปยังสตรีมเอาต์พุตมาตรฐานหรือสตรีมข้อผิดพลาดมาตรฐาน คุณสามารถเข้าถึงข้อมูลเหล่านี้ได้ด้วย kubectl logs

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

kubectl logs my-app-pod -f

เรียกใช้คำสั่งในคอนเทนเนอร์

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

kubectl exec ช่วยให้คุณเรียกใช้คำสั่งหรือเปิดเชลล์ เช่น bash หรือ sh ได้โดยตรงภายในคอนเทนเนอร์

kubectl exec -it my-app-pod -- /bin/bash

เข้าถึงจากเครื่องภายในด้วย Port-Forward

หากสงสัยว่าไม่สามารถเข้าถึงบริการได้ หรือต้องการทดสอบบริการจากเครื่องภายในโดยไม่เปิดให้เข้าถึงจากภายนอก kubectl port-forward จะช่วยคุณได้

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

kubectl port-forward service/my-web-service 8080:80

วิเคราะห์ปัญหาบริการ

หากไม่สามารถเข้าถึงแอปพลิเคชันผ่านบริการได้ ให้ตรวจสอบสองสิ่งต่อไปนี้:

  • ตัวเลือกบริการ: ตรงกับป้ายกำกับของพ็อดอย่างถูกต้องหรือไม่
  • ปลายทาง: บริการมีปลายทางที่ใช้งานอยู่หรือไม่ (เช่น มีพ็อดที่กำลังทำงานอยู่หรือไม่)

ใช้ kubectl get svc และ kubectl get ep เพื่อตรวจสอบสิ่งเหล่านี้

kubectl get svc my-web-service
kubectl get ep my-web-service

จัดการปัญหาที่พบบ่อย

มาดูปัญหาพ็อดที่พบบ่อยสองกรณี:

  • CrashLoopBackOff: คอนเทนเนอร์เริ่มทำงานและหยุดทำงานซ้ำ ๆ ให้ตรวจสอบ kubectl logs เพื่อหาข้อผิดพลาด
  • ImagePullBackOff: Kubernetes ดึงอิมเมจคอนเทนเนอร์ไม่ได้ ให้ตรวจสอบชื่ออิมเมจ แท็ก และการเข้าถึงรีจิสทรี

kubectl describe pod มักช่วยเปิดเผยสาเหตุเบื้องต้นในส่วน 'Events' ได้

โจทย์ท้าทายการแก้จุดบกพร่อง

คุณสังเกตเห็นว่าพ็อดชื่อ data-processor-xyz อยู่ในสถานะ CrashLoopBackOff และจำเป็นต้องตรวจสอบสาเหตุที่พ็อดหยุดทำงาน

คำสั่ง สอง คำสั่งใดต่อไปนี้ที่สำคัญที่สุดและควรเรียกใช้เป็นอันดับแรกเพื่อวิเคราะห์สาเหตุโดยตรง

ทบทวน: เชี่ยวชาญการแก้จุดบกพร่อง

ทำได้ดีมาก คุณได้เรียนรู้วิธีใช้คำสั่ง kubectl สำคัญเพื่อแก้จุดบกพร่องพ็อดและบริการแล้ว:

  • kubectl describe สำหรับดูข้อมูลทรัพยากรและเหตุการณ์โดยละเอียด
  • kubectl logs เพื่อดูสิ่งที่เกิดขึ้นภายในคอนเทนเนอร์
  • kubectl exec สำหรับการแก้ไขปัญหาแบบโต้ตอบ
  • kubectl port-forward สำหรับเข้าถึงบริการจากเครื่องภายใน

เครื่องมือเหล่านี้จำเป็นต่อการทำให้แอปพลิเคชัน Kubernetes ทำงานได้อย่างราบรื่น หมั่นฝึกฝนต่อไป

คำถามที่พบบ่อย

บทเรียน “การแก้ไขข้อบกพร่องของ Pod และ Service” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การแก้ไขข้อบกพร่องของ Pod และ Service” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kubernetes Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การแก้ไขข้อบกพร่องของ Pod และ Service”

ใช้คำสั่ง kubectl และเครื่องมืออื่น ๆ เพื่อแก้ไขข้อบกพร่องของ Pod ที่ทำงานผิดปกติและปัญหาการเชื่อมต่ออย่างมีประสิทธิภาพ คุณปฏิบัติ Kubernetes Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kubernetes Basics หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kubernetes Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การแก้ไขข้อบกพร่องของ Pod และ Service” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kubernetes Basics นี้ได้ไหม

ได้ บทเรียน Kubernetes Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การวินิจฉัยปัญหาทั่วไป
  2. การแก้ไขข้อบกพร่องของ Pod และ Service
  3. แนวทางปฏิบัติและเคล็ดลับที่ดีที่สุดสำหรับการใช้งานจริง
  4. โควตาทรัพยากรและช่วงจำกัดทรัพยากร
← กลับไปที่ Kubernetes Basics