การแก้ไขข้อบกพร่องของ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การวินิจฉัยปัญหาทั่วไป
- การแก้ไขข้อบกพร่องของ Pod และ Service
- แนวทางปฏิบัติและเคล็ดลับที่ดีที่สุดสำหรับการใช้งานจริง
- โควตาทรัพยากรและช่วงจำกัดทรัพยากร