Kubernetes Debugging met Ephemeral Containers

Het debuggen van applicaties die draaien op Kubernetes kan heel makkelijk zijn, mits je in je containers zelf daar de goede tools voor hebt. Nu gaat er natuurlijk niks boven goede instrumentatie met goede traces, logs, en metrics, maar helaas zijn die niet altijd beschikbaar. Echte debugging tools in je container images (denk aan bijvoorbeeld gdb en vrienden) is vaak niet aan te raden, omdat we vanuit een beveiligings-standpunt dat soort tools niet in onze images willen hebben zitten.

Het wordt pas echt leuk als je container images zelfs geen shell erin hebben zitten. Denk hierbij aan de groeiende hoeveelheid “Distroless”-images, maar ook aan images met slechts een enkele, statisch-gelinkte, binary, zoals veel Golang applicaties.

In deze video kijkt Wander naar de verschillen tussen oc debug en kubectl debug, hoe je de tweede het gedrag van de eerste kunt laten overnemen, en hoe je met kubectl debug extra, tijdelijke, containers aan een Pod kunt toevoegen die je wel je gewenste gereedschap geven.

Gerelateerde posts