안녕하세요, Kubernetes 내 Pod 를 troubleshooting 하기 위한 방향을 찾기 위해 글 올립니다.
현황
Azure Kubernetes Service (AKS)에서 동작하는 Pod 하나가 User-assigned Managed Identity 를 사용하여 Azure SQL Database 에 접근하고 있습니다.
그런데 Managed Identity를 사용하면 ‘GET /metadata/identity/oauth2/token’ 요청 시 400 응답이 매번 오는 상황입니다.
이를 해결하기 위해 Azure Support 쪽 지원을 받고 있지만, 문제의 원인을 파악하는데 어려움을 겪고 있습니다.
본론
Azure Support 측에서 문제 원인을 진단하는데 Pod의 Network traffic 기록을 보면 도움이 될 것 같다고 하여, 방법을 찾아보고 있습니다.
제가 할 줄 아는 건 Wireshark 를 활용하는 방법들인데, Kubernetes 내 Pod 가 운영되는 환경이 제한적이다 보니 Wireshark를 사용할 수가 없습니다.
그래서 혹시 Kubernetes 내 Pod의 Network packet 자체를 수집 및 모니터링 방법은 없을지 질문 남깁니다.
일단 현재 AKS 에 Prometheus 와 Container Insights, Application Insights 가 운영되고 있지만, Metrics 와 Log 를 수집할 뿐 Network packet 자체를 수집하는 건 아니라서 어떻게 해야 할지 찾아보고 있습니다.
현재
일단 찾아본 방법으로는 아래처럼 tcpdump
를 만들면 Network packet 자체는 수집 가능하지만, 제 추측으로는 HTTPS(TLS) 통신에 대한 private key가 없어서 내용을 볼 수 없는 건 아닐까 추측하고 있습니다.
Ephemeral Containers | Kubernetes
역시 .NET Runtime by Microsoft | Docker Hub 에는 tcpdump
명령어가 내장되어 있지 않네요.