การบันทึกล็อกของ Kubernetes เป็นจุดปวดหัวสำหรับนักพัฒนาและวิศวกร DevOps มาอย่างยาวนาน มักต้องการการตั้งค่าที่ซับซ้อนหรือการส่งข้อมูลที่ละเอียดอ่อนไปยังบริการของบุคคลที่สาม เครื่องมือที่ค่อนข้างใหม่ที่เรียกว่า Kubetail กำลังได้รับความสนใจในชุมชนนักพัฒนาสำหรับการนำเสนอวิธีการที่เรียบง่ายในการดูล็อกจากหลายคอนเทนเนอร์แบบเรียลไทม์
การดูล็อกที่เรียบง่ายโดยไม่ต้องพึ่งพาภายนอก
Kubetail แตกต่างจากเครื่องมืออื่นโดยการใช้ Kubernetes API โดยตรงเพื่อดึงล็อกจากคลัสเตอร์โดยไม่ต้องการโครงสร้างพื้นฐานในการจัดเก็บหรือการทำดัชนีเพิ่มเติม ไม่เหมือนกับโซลูชันที่หนักกว่าเช่น Loki/Grafana หรือ ELK Stack ที่ต้องการการตั้งค่าและการบำรุงรักษาที่สำคัญ Kubetail ทำงานได้ทันทีกับการกำหนดค่า Kubernetes ที่มีอยู่ วิธีการนี้ได้รับการตอบรับจากนักพัฒนาหลายคนที่พบว่าการตั้งค่าการบันทึกล็อกแบบดั้งเดิมยุ่งยากเกินไปสำหรับงานดีบักประจำวัน
นี่คือสิ่งที่ผมพลาดไป—การจัดการกับหน้าต่าง kubectl logs สิบกว่าหน้าต่างและยังคงสูญเสียบริบท การเห็นล็อกของคอนเทนเนอร์ทั้งหมดรวมกันในเวลาจริงเป็นตัวเปลี่ยนเกมสำหรับการดีบักเวิร์กโหลดหลายพอด
ความสามารถของเครื่องมือในการรวมล็อกจากหลายคอนเทนเนอร์เข้าเป็นไทม์ไลน์เรียงตามลำดับเวลาเดียวได้รับการเน้นย้ำว่ามีคุณค่าเป็นพิเศษสำหรับการดีบักแอปพลิเคชันแบบกระจาย คุณสมบัตินี้แก้ไขปัญหาความหงุดหงิดทั่วไปเมื่อทำงานกับสถาปัตยกรรมไมโครเซอร์วิสที่คำขอเดียวอาจครอบคลุมหลายคอนเทนเนอร์
ตัวเลือกการติดตั้ง Kubetail
การติดตั้งบนเดสก์ท็อป:
- Homebrew:
brew install kubetail
- Shell script:
curl -s https://www.kubetail.com/install.sh | bash
- ดาวน์โหลดไบนารีโดยตรงสำหรับหลายแพลตฟอร์ม (Darwin/amd64, Darwin/arm64, Linux/amd64, Linux/arm64, Windows/amd64)
การติดตั้งบนคลัสเตอร์:
- Helm:
helm repo add kubetail https://kubetail-org.github.io/helm-charts/ helm install kubetail kubetail/kubetail --namespace kubetail-system --create-namespace
- YAML Manifest
- Glasskube:
glasskube install kubetail
คุณสมบัติหลัก
- การดูล็อกแบบเรียลไทม์ข้ามหลายคอนเทนเนอร์
- อินเตอร์เฟซแบบเว็บแดชบอร์ดและ CLI
- การกรองตามเวิร์กโหลด, ช่วงเวลา, คุณสมบัติของโหนด
- ใช้ Kubernetes API (ไม่มีการถ่ายโอนข้อมูลภายนอก)
- ไม่มีความต้องการพื้นที่จัดเก็บข้อมูลเพิ่มเติม
การเปรียบเทียบชุมชนกับเครื่องมือที่มีอยู่
สมาชิกชุมชนหลายคนได้เปรียบเทียบระหว่าง Kubetail และ Stern ซึ่งเป็นเครื่องมือดูล็อก Kubernetes ยอดนิยมอีกตัวหนึ่ง ทั้งสองเครื่องมือมีวัตถุประสงค์ที่คล้ายกัน แต่ Kubetail นำเสนอแดชบอร์ดบนเว็บนอกเหนือจากฟังก์ชันการทำงานแบบ CLI นักพัฒนาบางคนได้กล่าวถึงความชอบของพวกเขาสำหรับความเรียบง่ายของ Stern และการใช้ Go ล้วนๆ ซึ่งทำให้ง่ายต่อการรวมเข้ากับเวิร์กโฟลว์ที่มีอยู่
นักพัฒนา Kubetail ได้ยอมรับความซ้ำซ้อนกับ Stern แต่ได้กล่าวถึงแผนการที่จะทำให้ข้อเสนอของพวกเขาแตกต่างด้วยคุณสมบัติที่ไม่เหมือนใครเช่นความสามารถ grep ระยะไกลและการเข้าถึงล็อกระบบ นอกจากนี้ยังมีความสับสนในชุมชนเนื่องจากความซ้ำซ้อนของชื่อกับโครงการเก่าที่เรียกว่า kubetail โดย Johan Haleby โดยนักพัฒนารายงานว่าอยู่ในการสื่อสารเพื่อแก้ไขความสับสนของผู้ใช้ที่อาจเกิดขึ้น
นอกเหนือจาก Kubernetes: ความต้องการโซลูชันการบันทึกล็อกแบบ Local-First
ที่น่าสนใจคือ การอภิปรายเกี่ยวกับ Kubetail ได้เผยให้เห็นถึงความต้องการที่กว้างขึ้นสำหรับโซลูชันการบันทึกล็อกแบบเบาและเน้นที่เครื่องท้องถิ่นก่อน ซึ่งไม่เฉพาะเจาะจงกับ Kubernetes นักพัฒนาหลายคนแสดงความสนใจในเครื่องมือที่คล้ายกันซึ่งสามารถทำงานกับไฟล์ล็อกทั่วไปในขณะที่ยังคงรักษาความสามารถในการแยกวิเคราะห์และกรองล็อกแบบมีโครงสร้างที่ Kubetail นำเสนอสำหรับสภาพแวดล้อม Kubernetes
โครงการเช่น Logdy และ humanlog.io ถูกกล่าวถึงว่าเป็นทางเลือกสำหรับสภาพแวดล้อมที่ไม่ใช่ Kubernetes ซึ่งบ่งชี้ถึงช่องว่างในตลาดสำหรับเครื่องมือสำรวจล็อกที่เป็นมิตรกับนักพัฒนาซึ่งไม่ต้องการโครงสร้างพื้นฐานที่ซับซ้อน เครื่องมือในอุดมคติตามความเห็นของผู้แสดงความคิดเห็นหลายคนจะรวมความง่ายในการใช้งานของอินเทอร์เฟซ Kubetail กับความสามารถในการทำงานกับแหล่งล็อกแบบมีโครงสร้างใดๆ
Kubetail มีให้ติดตั้งผ่านหลายวิธีรวมถึง Homebrew การดาวน์โหลดไบนารีโดยตรง หรือการปรับใช้ภายในคลัสเตอร์ Kubernetes โดยใช้ Helm charts เมื่อการพัฒนาดำเนินต่อไป โครงการนี้ดูเหมือนจะพร้อมที่จะสร้างตำแหน่งของตัวเองในระบบนิเวศเครื่องมือ Kubernetes โดยมุ่งเน้นที่ความเรียบง่ายและความสามารถในการดูล็อกแบบเรียลไทม์
อ้างอิง: Kubetail