การเก็บบันทึกด้วย kubectl logs
เข้าถึงและวิเคราะห์บันทึกของคอนเทนเนอร์โดยตรงจากคลัสเตอร์ Kubernetes โดยใช้ kubectl
การเก็บบันทึกด้วย kubectl logs เป็นบทเรียน Kubernetes Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kubernetes Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดบันทึกจึงสำคัญใน Kubernetes
ใน Kubernetes การทำความเข้าใจว่าแอปพลิเคชันกำลังทำอะไรอยู่นั้นสำคัญมาก บันทึกเปรียบเสมือนไดอารีของแอปพลิเคชัน ซึ่งบันทึกเหตุการณ์ ข้อผิดพลาด และการอัปเดตสถานะ
บันทึกมีความสำคัญต่อ:
- การแก้ไขข้อบกพร่อง: ระบุจุดที่มีปัญหาเมื่อเกิดข้อผิดพลาด
- การเฝ้าติดตาม: ตรวจสอบสถานะและประสิทธิภาพของแอปพลิเคชัน
- การตรวจสอบย้อนหลัง: ติดตามการดำเนินการและการเปลี่ยนแปลงในช่วงเวลาต่าง ๆ
อธิบายบันทึกของคอนเทนเนอร์
เมื่อแอปพลิเคชันในคอนเทนเนอร์ทำงาน โดยทั่วไปแอปพลิเคชันจะเขียนผลลัพธ์ไปยังสตรีมเอาต์พุตมาตรฐาน (stdout)และข้อผิดพลาดมาตรฐาน (stderr) Kubernetes จะรวบรวมสตรีมเหล่านี้สำหรับคอนเทนเนอร์แต่ละตัว
จากนั้นสตรีมเหล่านี้จะพร้อมให้เข้าถึงผ่าน API ของ Kubernetes ทำให้คุณเข้าถึงได้ง่ายโดยไม่ต้องใช้ SSH เพื่อเข้าสู่โหนดหรือคอนเทนเนอร์แต่ละตัว
แนะนำ kubectl logs
คำสั่ง kubectl logs เป็นเครื่องมือหลักสำหรับเข้าถึงบันทึกจากคอนเทนเนอร์ที่ทำงานอยู่ในพ็อด Kubernetes ของคุณ คำสั่งนี้ใช้งานตรงไปตรงมาและมีตัวเลือกที่ทรงพลังหลายแบบ
การใช้งานพื้นฐานที่สุดคือระบุชื่อพ็อดที่คุณต้องการตรวจสอบ
สร้างพ็อดที่สร้างบันทึก
เพื่อดูการทำงานของ kubectl logs ลองสมมติว่าเราได้ติดตั้งพ็อดอย่างง่ายที่ส่งข้อความออกไปยังเอาต์พุตมาตรฐานอย่างต่อเนื่อง ซึ่งจะจำลองแอปพลิเคชันจริงที่สร้างบันทึก
ต่อไปนี้คือ YAML สำหรับพ็อดดังกล่าว (คุณจะนำไปใช้โดยใช้ kubectl apply -f):
apiVersion: v1
kind: Pod
metadata:
name: busybox-logger
spec:
containers:
- name: busybox-container
image: busybox
command: ['sh', '-c', 'while true; do echo "$(date) - Hello from BusyBox"; sleep 5; done']
restartPolicy: Alwaysการดูบันทึกพื้นฐานของ Pod
เมื่อ Pod busybox-logger ของคุณทำงานอยู่ (ตรวจสอบด้วย kubectl get pods) คุณสามารถดึงบันทึกของ Pod ได้โดยใช้คำสั่งพื้นฐาน kubectl logs
คำสั่งนี้จะแสดงรายการบันทึกทั้งหมดที่บันทึกไว้จนถึงขณะนั้น
kubectl logs busybox-loggerการสตรีมบันทึกแบบเรียลไทม์
สำหรับการดีบักแบบสด คุณมักจำเป็นต้องเห็นบันทึกทันทีที่เกิดขึ้น เช่นเดียวกับ tail -f บน Linux แฟล็ก -f หรือ --follow ทำหน้าที่นี้โดยตรง
แฟล็กนี้จะสตรีมรายการบันทึกใหม่จากคอนเทนเนอร์อย่างต่อเนื่อง
kubectl logs -f busybox-loggerบันทึกจากคอนเทนเนอร์ก่อนหน้า
หากคอนเทนเนอร์ภายใน Pod ของคุณหยุดทำงานและเริ่มทำงานใหม่ โดยค่าเริ่มต้น kubectl logs จะแสดงบันทึกจากอินสแตนซ์ที่กำลังทำงานอยู่ในปัจจุบัน
หากต้องการดูบันทึกจากอินสแตนซ์ *ก่อนหน้า* ของคอนเทนเนอร์ที่สิ้นสุดการทำงานแล้ว ให้ใช้แฟล็ก --previous หรือ -p ข้อมูลนี้มีประโยชน์อย่างยิ่งในการดีบักสาเหตุที่คอนเทนเนอร์อาจทำงานล้มเหลว
kubectl logs -p busybox-loggerบันทึกจากคอนเทนเนอร์ที่ระบุ
Pod บางรายการสามารถเรียกใช้คอนเทนเนอร์หลายรายการได้ (เช่น แอปพลิเคชันหลักและไซด์คาร์สำหรับการบันทึกหรือการตรวจสอบ) หาก Pod ของคุณมีคอนเทนเนอร์มากกว่าหนึ่งรายการ คุณต้องระบุว่าต้องการดูบันทึกของคอนเทนเนอร์ใด โดยใช้แฟล็ก -c หรือ --container
kubectl logs my-multi-container-pod -c my-sidecar-containerการกรองและจำกัดผลลัพธ์บันทึก
บางครั้งคุณต้องการเพียงบางส่วนของบันทึกหรือเฉพาะรายการล่าสุด คุณสามารถใช้ kubectl logs ร่วมกับคำสั่งมาตรฐานของ Linux หรือใช้แฟล็กในตัวได้ดังนี้:
- กรองด้วย
grep: ส่งผลลัพธ์ไปยังgrepเพื่อค้นหาคำสำคัญที่ระบุ - จำกัดจำนวนบรรทัดด้วย
--tail: แสดงเฉพาะ N บรรทัดสุดท้ายของบันทึก
kubectl logs busybox-logger | grep "Hello"
kubectl logs busybox-logger --tail=5โจทย์ท้าทายคำสั่งบันทึก
คุณมี Pod ชื่อ my-app-pod ซึ่งมีคอนเทนเนอร์สองรายการ ได้แก่ frontend และ backend คอนเทนเนอร์ backend เพิ่งหยุดทำงานและเริ่มทำงานใหม่ คุณต้องการดูบันทึกจากอินสแตนซ์ ก่อนหน้า ของคอนเทนเนอร์ backend
สรุปบันทึกและการดีบัก
ขอแสดงความยินดี! คุณได้เรียนรู้พื้นฐานสำคัญของการเข้าถึงและวิเคราะห์บันทึกของคอนเทนเนอร์โดยใช้ kubectl logs แล้ว คำสั่งอันทรงพลังนี้ขาดไม่ได้สำหรับการทำความเข้าใจและแก้ไขปัญหาแอปพลิเคชันที่ทำงานอยู่ใน Kubernetes
คำสั่งสำคัญที่ควรจำ:
kubectl logs <pod-name>: ดึงบันทึกพื้นฐานkubectl logs -f <pod-name>: สตรีมบันทึกแบบเรียลไทม์kubectl logs -p <pod-name>: ดูบันทึกจากอินสแตนซ์คอนเทนเนอร์ก่อนหน้าkubectl logs -c <container> <pod-name>: ดูบันทึกจากคอนเทนเนอร์ที่ระบุ
คำถามที่พบบ่อย
บทเรียน “การเก็บบันทึกด้วย kubectl logs” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเก็บบันทึกด้วย kubectl logs” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kubernetes Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเก็บบันทึกด้วย kubectl logs”
เข้าถึงและวิเคราะห์บันทึกของคอนเทนเนอร์โดยตรงจากคลัสเตอร์ Kubernetes โดยใช้ kubectl คุณปฏิบัติ Kubernetes Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kubernetes Basics หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kubernetes Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การเก็บบันทึกด้วย kubectl logs” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kubernetes Basics นี้ได้ไหม
ได้ บทเรียน Kubernetes Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเก็บบันทึกด้วย kubectl logs
- ตัวชี้วัดด้วย Prometheus และ Grafana
- การตรวจสอบสุขภาพ: โพรบการทำงานและความพร้อม
- การติดตามแบบกระจายและเหตุการณ์