TL;DR
First get a shell within the pod:
kubectl exec --stdin --tty <Pod Name> -n <Pod Namespace> -- cmd
then install procdump using choco:
C:\> choco install procdump
find the running processes:
C:\> powershell
PS C:\> Get-Process
PS C:\> exit
then run procdump:
C:\> procdump -e 1 -f "" <process id>
Use Case
So, I needed to find a way to debug an application (.NET) running on a Windows Pod. The app was running, but not working as expected, it was crashing before even App Insights was loaded - so I was pretty much blind on what was going on. On the good old days I would use procdump
to log exceptions on my console (procdump -e 1 -f "" w3wp.exe)
, but how to do such a thing when the app runs on Kubernetes?
Well, first I needed to get a shell within the pod / container (?), then install procdump (?), then get my process id (?), and finally running the procdump with the proper switches.
As it ends up, all of the above are just 4 commands away...