Interviewfrage für DevOps Engineer

Wie entscheidet der Kubernetes-Scheduler, wo ein Pod läuft?

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

Kurzantwort

Er läuft in zwei Phasen. Filtering entfernt Nodes, die den Pod nicht hosten können, auf Basis von Resource Requests gegen allocatable Kapazität, Node Selectors, Taints ohne passende Toleration und Volume- oder Affinity-Constraints. Scoring rankt dann die Übrigen nach Regeln wie Verteilung über Nodes und Bevorzugung weniger ausgelasteter. Der Gewinner wird gebunden, und das kubelet auf dem Node startet den Pod tatsächlich.

Warum Interviewer das fragen

Scheduling taucht in echten Incidents als Pending Pods und ungleiche Last auf, der Interviewer will also wissen, ob du das debuggen kannst. Das Schlüsseldetail ist, dass Scheduling Requests nutzt und nicht Limits oder tatsächliche Auslastung, und das erklärt die meisten verdutzten Gesichter bei Kapazitäts-Incidents. Affinity, Taints und Topology Spread Constraints zeigen, dass du Platzierung bewusst geformt und nicht nur Defaults akzeptiert hast.

So baust du deine Antwort auf

  • Nenne die zwei Phasen: filtern, dann scoren, dann binden.
  • Betone, dass Requests die Platzierung treiben, nicht Limits oder Live-Auslastung.
  • Liste die Hebel: Selectors, Affinity, Taints, Topology Spread.
  • Sag, wie du einen Pod debuggst, der in Pending hängt.

Beispielantwort

Gesprochenes Beispiel, erste Person

Der Scheduler achtet auf Pods ohne zugewiesenen Node und schickt sie durch Filtering und Scoring. Filtering wirft jeden Node raus, der unmöglich funktionieren kann: zu wenig allocatable CPU oder Memory für die Requests des Pods, ein Node Selector, der nicht passt, ein Taint ohne passende Toleration, ein Volume, das in dieser Zone nicht attachen kann. Scoring rankt dann den Rest, bevorzugt Verteilung und ausgeglichene Auslastung, und der oberste Node gewinnt und wird gebunden. Das operativ entscheidende Detail ist, dass nach Requests geplant wird und nicht nach dem, was der Pod tatsächlich verbraucht. Ein Cluster kann also in den Dashboards nach fünfzehn Prozent Auslastung aussehen und trotzdem nichts mehr schedulen, weil alle ihre Requests weit über dem echten Verbrauch gesetzt haben. Wenn ein Pod in Pending hängt, gehe ich direkt auf die Events am Pod, denn der Scheduler sagt dir genau, welches Predicate auf wie vielen Nodes gescheitert ist. Zum Formen der Platzierung nutze ich Topology Spread Constraints über Zonen für Verfügbarkeit und Taints mit Tolerations, um normale Workloads von Nodes mit spezieller Hardware fernzuhalten.

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

  • Was ist der Unterschied zwischen einem Pod, der evicted, und einem, der preempted wird?
  • Wie hängen Requests und Limits mit den Quality-of-Service-Klassen zusammen?
  • Wie hältst du zwei Replicas desselben Service von einem Node fern?

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

Ü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