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
evictionSoftGracePeriodgesetzte Dauer (zum Beispielmemory.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.