개발 환경 vs. 운영 환경
Kubetail은 개발 환경과 운영 환경 모두에서 잘 동작하지만, 각 단계에서 제공하는 가치는 조금씩 다릅니다.
분산 시스템은 하나의 사용자 요청이 여러 서비스를 거칠 수 있기 때문에 디버깅하기 어렵습니다. Kubetail은 바로 이런 시나리오를 위해 설계되었습니다. Kubetail을 사용하면 여러 서비스의 로그를 워크로드 내 모든 컨테이너를 가로지르는 하나의 시간순 타임라인으로 합쳐 보고, 요청이 시스템을 통과하는 모습을 실시간으로 확인할 수 있습니다.
Kubetail은 컨테이너 라이프사이클 이벤트를 추적하기 때문에, 컨테이너가 재시작되거나 교체되어도 로그 스트림이 끊기지 않습니다. 덕분에 개별 Pod 로그를 짜맞춰 사건을 재구성하지 않고도 요청의 경로를 엔드투엔드로 추적하고 문제를 재현하기가 쉬워집니다.
개발 환경에서 Kubetail을 사용하려면 kubetail CLI를 설치하고 kubetail serve를 실행해 브라우저에서 로그를 보거나, kubetail logs를 실행해 터미널로 로그를 스트리밍하면 됩니다(빠른 시작 참고). 클러스터 쪽 설치는 필요 없고, 로그 전달 파이프라인을 미리 구성할 필요도 없습니다.
Kubetail은 운영 환경에서도 자연스럽게 확장됩니다. 트래픽 흐름이 예상대로 동작하는지 확인하는 데 사용할 수 있고, 서비스 로그를 실시간으로 spot check 하여 오류가 발생하고 있지 않은지 확인하는 데도 사용할 수 있습니다.
기존 로깅 스택을 보완하기
섹션 제목: “기존 로깅 스택을 보완하기”Kubetail은 완전한 옵저버빌리티 플랫폼을 대체하는 도구가 아닙니다. Datadog, Grafana, ClickHouse, VictoriaMetrics, Honeycomb, Dash0, Loki 같은 도구는 장기 로그 보관, 알림, 메트릭 상관관계 분석, 대규모 이력 분석을 위해 설계되었습니다. Kubetail의 강점은 실시간 가시성과 라이브 로그 tailing에 있으며, 저장과 질의에 최적화된 플랫폼과 잘 어울립니다.
흔한 패턴은 라이브 디버깅에는 Kubetail을 사용하고, 나머지 작업은 주력 로깅 플랫폼에 맡기는 것입니다. 메트릭 대시보드, 알림, 사고 후 분석은 기존 플랫폼에서 처리합니다.
장애 디버깅
섹션 제목: “장애 디버깅”Kubetail은 사고 상황에서 중요한 운영상 이점을 가집니다. kube-apiserver에만 접근할 수 있으면 됩니다. 외부 로깅 서비스가 정상 동작할 필요도 없고, 원격 스토리지 백엔드가 응답할 필요도 없습니다. 클러스터가 불타고 있고 옵저버빌리티 스택이 망가진 상황에서도, Kubetail은 지금 이 순간 컨테이너가 무엇을 하고 있는지 실시간으로 보여줄 수 있습니다.