BestEffort ist die niedrigste QoS-Klasse in Kubernetes. Ein Pod erhält sie, wenn kein Container requests oder limits setzt – der Pod meldet also keinerlei Ressourcen-Bedarf an (siehe Pod-QoS-Klassen).
Was die Klasse bewirkt
Ohne requests reserviert der Pod nichts: Der Scheduler platziert ihn nur auf tatsächlich freie Ressourcen, und bei überbelegten Nodes kann er auf einen Knoten landen, dessen Kapazität bereits anderweitig verplant ist. Ohne limits darf er im Normalbetrieb die volle Node-Leistung nutzen – solange genug frei ist.
Eviction und OOM-Reihenfolge
BestEffort-Pods sind die ersten, die bei Node-Pressure-Eviction beendet werden: Der Kubelet räumt sie zuerst ab, bevor Burstable- und Guaranteed-Pods betroffen sind (siehe Eviction-Signale und Eviction-Policy). Auch der OOM-Killer trifft sie zuerst: Ihr oom_score_adj liegt bei 1000, dem Maximum. Ein laufender Prozess kann dadurch abrupt mit OOMKilled (Exit-Code 137) enden. Unter systemd liegt der Pod in der cgroup kubepods-besteffort.slice.
Einsatz
BestEffort eignet sich für Batch- und Test-Pods, Monitoring-Agenten oder Wegwerf-Workloads, deren Verlust tolerierbar ist – etwa um ungenutzte Node-Kapazität kostengünstig auszunutzen. Für produktive Dienste ist die Klasse riskant, weil Kubernetes sie bei Knappheit als Erstes beendet.
Verwandte Grundlagen: Pod-QoS-Klassen, Pod. Weitere QoS-Klassen: Guaranteed, Burstable.