IT/Kubernets

kubectl events --for, 이거 모르는 분 꽤 많더라

gfrog 2026. 8. 23. 15:11

트러블슈팅 하다가 오늘 알게 됐다. 정확히 말하면 "알고는 있었는데 안 쓰고 있었다"에 가깝다. kubectl events --for 얘기다.

왜 이제서야 쓰나

지금까지 특정 Pod의 이벤트만 보려면 이렇게 했다.

kubectl get events --field-selector involvedObject.name=web-pod-abc,involvedObject.kind=Pod -n prod

솔직히 매번 field-selector 문법이 헷갈렸다. involvedObject.name이었나 regarding.name이었나. Pod 이름을 오타 내면 결과가 조용히 비어있고, 그러면 또 오타를 의심하게 된다. 삽질 시간의 절반이 이 selector 맞추기였다.

그런데 kubectl events는 v1.28에서 GA된 이후로 --for 플래그를 제공한다. 최근 1.30/1.31 클러스터라면 그냥 이렇게 하면 된다.

kubectl events --for pod/web-pod-abc -n prod --watch

Deployment면 --for deployment/foo, Node면 --for node/ip-10-0-1-23. kind/name 형식만 지키면 끝이다. --watch도 붙는다.

실제로 편한 시나리오

우리 팀에서 자주 겪는 상황이 있다. HPA가 이상하게 튄다고 알림이 온다. 예전 같으면 kubectl describe hpa xxx로 이벤트 섹션만 보거나, kubectl get events를 grep으로 필터링했다. 근데 describe는 시간순 정렬이 이상하고, get events grep은 이벤트 이름에 HPA 이름이 안 박히는 경우가 있어서 놓친다.

kubectl events --for horizontalpodautoscaler/api-hpa -n prod --watch

이거 하나로 스케일 이벤트만 실시간으로 흘러나온다. FailedGetResourceMetric 같은 경고도 놓칠 일이 없다.

하나만 더

--for는 아직 여러 리소스를 동시에 지정하는 걸 지원 안 한다. Deployment와 그 아래 Pod을 같이 보고 싶으면 결국 두 개 창을 띄워야 한다. 이 부분은 좀 아쉽다. 아마 나만 아쉬운 건 아닐 것 같은데, 혹시 우회하는 방법 아시는 분 계시면 알려주세요.