Die Kubernetes Eviction-Policy legt fest, wann und wie das Kubelet Pods beendet, wenn ein Eviction-Signal seinen Schwellwert verletzt. Sie unterscheidet harte und weiche Schwellwerte und bestimmt, welche Pods zuerst dran sind.

Hart und weich

  • evictionHard: Bei Überschreiten wird sofort evakuiert – ohne Rücksicht auf die konfigurierte Beendigungsfrist (Grace Period).
  • evictionSoft: Es greift erst, wenn der Schwellwert für eine in evictionSoftGracePeriod gesetzte Dauer (zum Beispiel memory.available=1m30s) überschritten ist. Die Obergrenze der Gnadenfrist bestimmt eviction-max-pod-grace-period.

Zusätzlich steuern evictionMinimumReclaim (mindestens freizugebende Ressource) und evictionPressureTransitionPeriod (Wartezeit, bevor eine Node Condition zurückgesetzt wird) das Verhalten.

Wer fliegt zuerst?

Bei Node-Druck sortiert das Kubelet die Pods nach einer festen Rangfolge: zuerst die QoS-Klasse (BestEffort vor Burstable vor Guaranteed), dann ob der Pod seine Requests überschreitet, und zuletzt die Pod-Priority. Pods mit PodDisruptionBudget-Schutz werden bei der Node-Pressure-Eviction dennoch nicht verschont – anders als bei der API-initiierten Eviction, die das Budget respektiert.

Woran man Evictions erkennt

Das Kubelet protokolliert Eviction-Ereignisse; sie sind über kubectl describe node und das Kubernetes Audit Log nachvollziehbar.

Verwandte Grundlagen: Eviction-Signale und Kubernetes Taints.