Setz Requests aus beobachteter Auslastung, für CPU typischerweise um den Median und für Memory nahe dem Peak, denn Requests treiben Scheduling und Kapazität. Setz das Memory-Limit nah an den Request, denn Überschreiten killt den Container, und sei vorsichtig mit CPU-Limits, weil sie Throttling verursachen, das sich als unerklärliche Latenz zeigt. Überprüf die Zahlen mit echten Daten, statt sie zwischen Services zu kopieren.
Warum Interviewer das fragen
Das ist eine praktische Frage, bei der falsche Antworten echten Produktionsschmerz verursachen, und der Interviewer hat vermutlich Narben. Er will, dass du weißt, dass CPU komprimierbar ist und Memory nicht, dass CPU-Limits Throttling statt sanfter Verlangsamung verursachen und dass Requests sowohl Scheduling als auch Clusterkosten bestimmen. Quality-of-Service-Klassen und Messmethoden zu erwähnen zeigt Tiefe.
So baust du deine Antwort auf
- Erklär, dass Requests das Scheduling treiben und Limits die Durchsetzung.
- Trenn CPU von Memory, weil sie sich unterschiedlich verhalten.
- Gib eine Methode, wie du aus echten Daten zu Zahlen kommst.
- Erwähn Throttling, Out-of-Memory-Kills und Quality of Service.
Beispielantwort
Requests sind das, was der Scheduler zur Platzierung nutzt und wofür du faktisch zahlst, Limits sind die Decke, die die Runtime durchsetzt. Die beiden Ressourcen verhalten sich völlig unterschiedlich. CPU ist komprimierbar, ein CPU-Limit zu treffen heißt also, der Container wird gethrottelt, und das erscheint als Latenzspitzen ohne offensichtliche Ursache, was übel zu debuggen ist. Memory ist nicht komprimierbar, ein überschrittenes Memory-Limit heißt also, der Container wird sofort gekillt. Daraus folgen meine Defaults: CPU-Request aus der beobachteten Medianauslastung mit etwas Luft, und bei CPU-Limits auf latenzsensitiven Services bin ich meist vorsichtig oder setze sie großzügig. Für Memory setze ich den Request nahe dem realistischen Peak und das Limit dicht darüber, damit ein Leak schnell und sichtbar scheitert, statt still den Node aufzufressen. Die Zahlen hole ich aus ein paar Wochen echter Auslastungsperzentile, nicht aus dem Kopieren eines anderen Service, und ich prüfe sie nach Lasttests neu. Die andere Seite ist, dass aufgeblähte Requests der Hauptgrund dafür sind, dass Cluster leer aussehen und trotzdem nichts mehr schedulen können.
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 esNachfragen, mit denen du rechnen solltest
- Was passiert mit einem Pod, wenn er sein Memory-Limit überschreitet?
- Warum könntest du ein CPU-Limit bewusst weglassen?
- Wie beeinflussen die Quality-of-Service-Klassen die Eviction-Reihenfolge?
Weitere Fragen für DevOps 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