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

การเก็บบันทึกด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. การเก็บบันทึกด้วย kubectl logs
  2. ตัวชี้วัดด้วย Prometheus และ Grafana
  3. การตรวจสอบสุขภาพ: โพรบการทำงานและความพร้อม
  4. การติดตามแบบกระจายและเหตุการณ์
← กลับไปที่ Kubernetes Basics