Eviction-Signale sind die Ressourcen-Messwerte eines Kubernetes-Knotens, die das Kubelet überwacht, um bei Engpässen Pods proaktiv zu beenden (Eviction). Ein Signal verletzt seinen Schwellwert, wenn die verfügbare Ressource darunter fällt – zum Beispiel weniger als 100 MiB freier Arbeitsspeicher.
Die wichtigsten Signale
memory.available– verfügbarer Arbeitsspeicher des Knotens (Linux)nodefs.available/nodefs.inodesFree– Speicher und Inodes des Knoten-Dateisystemsimagefs.available/imagefs.inodesFree– Speicher für Container-Images (falls getrennt gemountet)containerfs.available/containerfs.inodesFree– falls als eigene Partition vorhandenpid.available– freie Prozess-IDs (Linux)
Die Messwerte stammen aus den cgroup-Statistiken, die der Knoten über cAdvisor erfasst.
Default-Schwellwerte und Node Conditions
Ohne eigene Konfiguration gelten als harte Schwellwerte: memory.available < 100Mi, nodefs.available < 10%, imagefs.available < 15% und nodefs.inodesFree < 5%. Wird ein Signal dauerhaft verletzt, setzt das Kubelet eine Node Condition wie MemoryPressure, DiskPressure oder PIDPressure – der Kubernetes Node nimmt dann keine neuen Pods mehr auf.
Hard und Soft
Jedes Signal kann zwei Schwellen haben: hart (Eviction sofort) und weich (erst nach einer Gnadenfrist). Welche Regeln dabei greifen, beschreibt die Kubernetes Eviction-Policy. Die eigentliche Beendigung übernimmt die Eviction-API; bei hartem Überschreiten beendet das Kubelet auch ohne API-Aufruf.
Verwandte Grundlagen: eviction-max-pod-grace-period und Kubernetes Pod-QoS-Klassen.