두 손끝의 창조자

Stern을 사용한 Kubernetes 다중 Pod 모니터링 가이드 본문

Docker

Stern을 사용한 Kubernetes 다중 Pod 모니터링 가이드

codinglog 2025. 4. 9. 14:32

Kubernetes 환경에서 여러 Pod의 로그를 동시에 모니터링해야 할 때가 자주 있습니다. 특히 마이크로서비스 아키텍처에서는 단일 애플리케이션이 여러 Pod에 분산되어 있어 전체 시스템을 모니터링하기가 쉽지 않습니다. 이런 상황에서 Stern은 매우 강력한 도구가 될 수 있습니다. Stern은 여러 Pod의 로그를 동시에 모니터링할 수 있게 해주며, 색상 구분을 통해 가독성을 높여줍니다.

Stern 설치 방법

Stern은 다양한 운영 체제에서 쉽게 설치할 수 있습니다.

macOS

brew install stern

Linux

wget https://github.com/stern/stern/releases/download/v1.25.0/stern_1.25.0_linux_amd64.tar.gz
tar -xvf stern_1.25.0_linux_amd64.tar.gz
sudo mv stern /usr/local/bin/

Windows

choco install stern

또는 GitHub에서 바이너리를 직접 다운로드하여 PATH에 추가할 수 있습니다.

Stern 사용 방법

Stern은 기본적으로 정규식을 사용하여 Pod 이름을 매칭합니다. 이를 통해 여러 Pod를 한 번에 모니터링할 수 있습니다.

기본 사용법

stern <pod-name-regex>

예를 들어, 'nginx'라는 이름을 포함한 모든 Pod의 로그를 모니터링하려면:

stern nginx

네임스페이스 지정

특정 네임스페이스의 Pod만 모니터링하려면:

stern <pod-name-regex> --namespace <namespace>

모든 네임스페이스에서 Pod를 모니터링하려면:

stern <pod-name-regex> --all-namespaces

컨테이너 지정

특정 컨테이너의 로그만 모니터링하려면:

stern <pod-name-regex> --container <container-name>

색상 설정

Pod별로 다른 색상을 사용하려면:

stern <pod-name-regex> --color always

고급 옵션

최대 Pod 수 늘리기

기본적으로 Stern은 모든 매칭되는 Pod의 로그를 표시합니다. 하지만 매우 많은 Pod가 있을 경우, 특정 수의 Pod만 모니터링하고 싶을 수 있습니다. 이때 --max-log-requests 옵션을 사용할 수 있습니다:

stern <pod-name-regex> --max-log-requests 10

이 명령은 최대 10개 Pod의 로그만 모니터링합니다.

로그 부하 줄이는 방법

패턴 필터링

특정 패턴을 포함하는 로그만 표시하려면:

stern <pod-name-regex> --include "ERROR|WARN"

특정 패턴을 제외하려면:

stern <pod-name-regex> --exclude "DEBUG|INFO"

시간 조건 설정

특정 시간 이후의 로그만 표시하려면:

stern <pod-name-regex> --since 10m

이 명령은 최근 10분 동안의 로그만 표시합니다. 지원되는 시간 단위는 s(초), m(분), h(시간), d(일) 등이 있습니다.

특정 시점부터의 로그를 보려면 타임스탬프를 사용할 수도 있습니다:

stern <pod-name-regex> --since-time "2023-04-09T10:00:00Z"

기타 유용한 옵션

로그 꼬리(tail) 설정

stern <pod-name-regex> --tail 100

각 Pod의 최근 100줄의 로그만 표시합니다.

출력 형식 지정

기본적으로 Stern은 각 라인 앞에 Pod와 컨테이너 이름을 추가합니다. 출력 형식을 커스터마이즈하려면:

stern <pod-name-regex> --template '{{.PodName}} | {{.Message}}'

실시간 로그 확인

stern <pod-name-regex> --follow

이 옵션은 기본적으로 활성화되어 있으며, 실시간으로 로그를 계속 표시합니다.

결론

Stern은 Kubernetes 환경에서 여러 Pod의 로그를 효율적으로 모니터링할 수 있는 강력한 도구입니다. 패턴 필터링, 시간 조건 설정, 최대 Pod 수 제한 등의 옵션을 통해 로그 부하를 줄이고 필요한 정보만 집중적으로 모니터링할 수 있습니다. 특히 마이크로서비스 아키텍처나 대규모 Kubernetes 클러스터에서 디버깅 및 모니터링을 수행할 때 Stern의 다양한 기능은 큰 도움이 될 것입니다.

반응형
Comments