제목 그대로 질문을 드립니다. 즉, 특정 Kubernetes 네임스페이스에 배포된 워크로드에 대한 모든 이벤트를 필터링하는 직관적인 방법을 찾고 있는데… Kubernetes 오브젝트의 정확한 이름을 요구하는 듯해서요.
2 Likes
안녕하세요. ![]()
문의 주신 내용과 같이 “특정 Kubernetes 네임스페이스에 배포된 워크로드에 대한 모든 이벤트를 필터링” 하는 방법으로 여러 가지가 있을 것 같습니다.
1) 리눅스 grep 커맨드를 활용해서 특정 키워드(메시지)로 필터링
kubectl events -A | grep "Pod/coredns-*"
kube-system 14m Normal SandboxChanged Pod/coredns-668d6bf9bc-trpnf Pod sandbox changed, it will be killed and re-created.
kube-system 14m Normal SandboxChanged Pod/coredns-668d6bf9bc-rm2m8 Pod sandbox changed, it will be killed and re-created.
- kubectl --field-sclector 특정 리소스를 지정 + grep 커맨드 활용하여 특정 키워드(메시지)로 필터링
kubectl get events --field-selector involvedObject.kind=Pod -A | grep Started
kube-system 16m Normal Started pod/coredns-668d6bf9bc-rm2m8 Started container coredns
kube-system 16m Normal Started pod/coredns-668d6bf9bc-trpnf Started container coredns
위에 1), 2) 방식은 리눅스 파이프라인(|)과 grep 명령어를 활용해서 특정 키워드로 이벤트 필터링이 가능하지만, 직관적인 방법은 아닙니다. 그래서 오픈소스 도구를 활용하면 보다 직관적인 방법으로 Kubernetes 이벤트를 필터링할 수 있습니다.
3) 터미널에서 k8s 클러스터를 사용하기 쉬운 UI로 관리할 수 있는 CLI 도구 (K9S 사용)
k9s 도구를 사용하여 events 이벤트 조회하고 원하는 문자열은 슬러쉬(/)를 입력해서 필요한 키워드만 필터링할 수 있고 숫자 0~9를 입력하면 원하는 namespace에 대한 event만 조회도 가능합니다. 이벤트 상세 내용을 조회 하고자 한다면 단축키(d)를 눌러서 보다 상세한 정보를 즉각 조회도 가능합니다.
참고 :
- 오픈소스 k9s 도구 : https://k9scli.io/
4 Likes
@sepiros62 님 답변 감사합니다. 잘 보고 활용해보겠습니다.
1 Like
