Interviewfrage für Site Reliability Engineer

Ein Pod hängt in CrashLoopBackOff. Wie gehst du bei der Triage vor?

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Fang mit kubectl describe pod an für Events und den letzten Exit Code, dann kubectl logs mit --previous, um die Ausgabe des abgestürzten Containers zu lesen. Exit Code 137 heißt meist OOM Kill, prüf also die Memory Limits. Exit 1 oder 2 heißt meist, dass die App beim Start gescheitert ist, oft wegen fehlender Config, fehlendem Secret oder einer nicht erreichbaren Dependency. Bestätige, dass das Image-Tag wirklich existiert, und prüf, ob eine zu aggressive Liveness Probe die Schleife verursacht.

Warum Interviewer das fragen

Das ist ein praktischer Kompetenztest: Kannst du einen Cluster unter Druck tatsächlich betreiben oder kennst du nur die Konzepte. Interviewer wollen eine konkrete Befehlsfolge, die Bedeutung der üblichen Exit Codes und das Bewusstsein, dass eine Crash-Schleife manchmal von der Plattform verursacht wird (Probes, Resource Limits, Node Pressure) und nicht vom Anwendungscode.

So baust du deine Antwort auf

  • Gib die Befehlsfolge der Reihe nach, beginnend mit describe.
  • Lies den Exit Code und übersetz ihn in eine Ursachenklasse.
  • Nutz --previous für Logs, denn der aktuelle Container existiert vielleicht noch nicht.
  • Prüf Plattform-Ursachen: Limits, Probes, Secrets, Image Pull, Node Pressure.
  • Sag, wie du währenddessen stabilisierst, um in Ruhe zu debuggen.

Beispielantwort

Gesprochenes Beispiel, erste Person

Zuerst kubectl describe pod, denn der Events-Abschnitt sagt dir meist direkt, ob es ein fehlgeschlagener Image Pull, ein fehlendes Secret oder ein OOM Kill ist, und er gibt dir den letzten Terminated State mit dem Exit Code. Dann kubectl logs mit --previous, denn der laufende Container wurde bereits ersetzt und seine Logs sind weg. Exit 137 ist ein SIGKILL, und in neun von zehn Fällen ist das das Memory Limit, ich vergleiche also das Limit mit dem tatsächlichen Verbrauch, statt zu raten. Exit 1 mit einem Stacktrace ist ein Startfehler der Anwendung, meist Config. Ich prüfe außerdem die Liveness Probe, denn ich habe einen völlig gesunden Java-Service in einer Crash-Schleife gesehen, schlicht weil er 40 Sekunden zum Warmlaufen brauchte und die Probe ihm 10 gab. Um in Ruhe zu debuggen, skaliere ich das Deployment, exece in eine Kopie mit auf sleep überschriebenem Command und reproduziere dort, statt gegen den Restart-Timer zu kämpfen.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Wie würdest du einen Container debuggen, der abstürzt, bevor er irgendwelche Logs schreibt?
  • Was sagt dir Exit Code 137, und was würdest du als Nächstes prüfen?
  • Wie hältst du einen abstürzenden Pod lange genug am Leben, um ihn zu inspizieren?

Weitere Fragen für Site Reliability Engineer

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen