Neu in Kubernetes
Kubernetes liefert drei Minor-Releases pro Jahr: 1.34 am 27.08.2025, 1.35 am 17.12.2025, 1.36 am 22.04.2026, 1.37 am 26.08.2026. 1.38 ist für den 16.12.2026 geplant. Die Leitlinie der letzten Linien ist deutlich: Dynamic Resource Allocation wird produktionsreif, Workloads werden zur Laufzeit resizebar statt neu geplant, und die Node-Isolation (User Namespaces, SELinux, PSI) geht auf GA. 1.37 räumt zusätzlich auf: ipvs bekommt einen Abschaltplan, kubelet und kubeadm verweigern alte Konfiguration.
Zuletzt geprüft: 1. Oktober 2026. Jeder Eintrag stammt aus den Release Notes des Projekts, verlinkt am Seitenende. Das ist eine kuratierte Auswahl, kein vollständiger Changelog.
1.37
26.08.2026- Breaking SELinuxMount GA und per Default an
SELinuxMount ist GA und standardmäßig aktiv, zuvor Beta seit 1.33. SELinuxChangePolicy ist bereits seit 1.36 GA. Volumes von CSI-Treibern, deren CSIDriver-Objekt spec.seLinuxMount: true setzt, werden mit -o context=<label> gemountet statt rekursiv umgelabelt. Teilen sich Pods mit unterschiedlichen SELinux-Labels auf demselben Node ein Volume, können sie dadurch nicht mehr starten. Opt-out je Pod über spec.securityContext.seLinuxChangePolicy: Recursive. Clusterweit lässt sich das Verhalten in 1.37 noch abschalten, mit 1.38 soll es gesperrt werden. Cluster ohne SELinux sind nicht betroffen.
- Breaking kubelet und kubeadm verweigern alte Konfiguration
Das kubelet startet nicht mehr, wenn eines der abgekündigten cAdvisor-Flags gesetzt ist, etwa --containerd, --boot-id-file oder --storage-driver-*. Erhalten bleibt nur --housekeeping-interval. Aus /metrics/cadvisor verschwinden container_cpu_load_average_10s, container_cpu_load_d_average_10s und container_tasks_state. Static Pods dürfen keine Secrets oder ConfigMaps mehr referenzieren, das Feature-Gate PreventStaticPodAPIReferences als Ausweg ist entfernt. kubeadm akzeptiert die seit 1.31 deprecatete Konfiguration v1beta3 nicht mehr, die Migration auf v1beta4 läuft mit kubeadm config migrate aus dem 1.35-Binary. Node-Konfiguration, Static-Pod-Manifeste, kubeadm-Configs und Dashboards also vor dem Upgrade bereinigen.
- GA Pod Certificates und ClusterTrustBundle GA
PodCertificateRequest ist GA und per Default an, zuvor Beta in 1.35 und Alpha in 1.34. Pods bekommen kurzlebige X.509-Identitäten über die Kubernetes-API, über ein projiziertes Volume vom Typ podCertificate. Einen Signer liefert Kubernetes nicht mit: Nötig ist ein eigener Signer-Controller, der PodCertificateRequests bearbeitet, Zertifikate ausstellt und erneuert. ClusterTrustBundle und die zugehörige Projektion in Pods sind ebenfalls GA und standardmäßig aktiv, zuvor Beta seit 1.33. Damit lassen sich CA-Bundles ohne ConfigMap-Kopien verteilen. Beim Umstieg beachten: Die in v1beta1 deprecateten Felder PKIXPublicKey und ProofOfPossession sind in v1 entfernt, Ersatz ist spec.stubPKCS10Request aus 1.36.
- GA DRA Extended Resources und Device Taints GA
DRAExtendedResource ist stabil, zuvor Beta in 1.36. Eine DeviceClass bekommt über spec.extendedResourceName einen Extended-Resource-Namen, Pods mit klassischen Requests wie example.com/gpu: 1 erhalten das Gerät dann über DRA, ohne ResourceClaim und ohne Device Plugin. DRA Device Taints und DRAResourceClaimDeviceStatus sind ebenfalls GA, Device Taints stehen jetzt in resource.k8s.io/v1.
- GA StorageVersionMigration GA
Die API storagemigration.k8s.io/v1 ist GA und per Default an, zuvor Beta ab 1.35 und dort per Default aus. Ein StorageVersionMigration-Objekt lässt den eingebauten Controller alle Objekte einer Ressource neu in etcd schreiben: nach einem Wechsel der Storage-Version, auch bei CRDs, oder nach einer Änderung der Encryption at Rest, damit Altdaten mit den neuen Einstellungen verschlüsselt liegen. Das ersetzt kubectl-replace-Skripte und den externen kube-storage-version-migrator, den Fortschritt melden die Conditions des Objekts.
- GA HPA: metrics.k8s.io v1, Toleranz GA, Scale-to-Zero Beta
Die Metrics-API ist nach fast neun Jahren Beta als metrics.k8s.io/v1 stabil, v1beta1 bleibt während der Übergangszeit nutzbar. metrics-server v0.9.0 (13.07.2026), das aktuelle Release, registriert noch nur v1beta1.metrics.k8s.io, die v1-APIService gibt es bisher nur auf dem master-Branch. HPAConfigurableTolerance ist GA: behavior.scaleUp.tolerance und behavior.scaleDown.tolerance überschreiben je HPA die clusterweite Toleranz von 10 Prozent. HPAScaleToZero ist Beta und per Default an, minReplicas: 0 funktioniert aber nur mit Object- oder External-Metriken, nicht mit CPU und Memory. Den Zustand meldet die Condition ScaledToZero.
- läuft aus ipvs mit Abschaltplan, kube-dns deprecated
kube-proxy loggt im ipvs-Modus beim Start eine Deprecation-Warnung, das neue Feature-Gate KubeProxyIPVS steht auf Deprecated. Laut KEP-5495 soll ipvs ab 1.40 per Default aus sein (per Gate noch wählbar) und ab 1.43 ganz entfallen. Außerdem warnt kube-proxy, wenn kein Modus explizit gesetzt ist, weil der Linux-Default in einem künftigen Release von iptables auf nftables wechselt. Dafür gibt es noch keinen Termin, kubeadm schreibt bei leerem Feld deshalb mode: iptables explizit in die KubeProxyConfiguration. kube-dns ist deprecated, nach 1.40 sollen keine Pakete mehr gebaut werden. Ziel ist CoreDNS.
1.36
22.04.2026- GA MutatingAdmissionPolicy GA
CEL-basierte Mutation direkt im API-Server ist stabil und per Default aktiv, zuvor Alpha in 1.32 und Beta in 1.34. Damit lassen sich viele Mutating Webhooks ersetzen, ohne einen externen Endpunkt in den Admission-Pfad zu hängen. Das nimmt Latenz und eine Ausfallquelle aus der Kette.
- GA User Namespaces GA
UserNamespacesSupport ist stabil, zuvor Beta seit 1.30. Pods laufen mit eigenem User-Namespace, root im Container ist nicht mehr root auf dem Node. In regulierten Umgebungen der direkteste Hebel gegen eine ganze Klasse von Container-Escapes.
- GA ImageVolume und kubelet-PSI-Metriken GA
ImageVolume ist stabil und mountet OCI-Artefakte als Volume, etwa Modelle oder Konfigurationsbäume. KubeletPSI ist stabil, zuvor Beta in 1.34, und liefert Pressure Stall Information für CPU, Memory und I/O über die Summary-API: messbarer Ressourcendruck je Pod statt bloßer Auslastung.
- GA DRA-Ausbau, AdminAccess und Prioritized List GA
DRAAdminAccess und DRAPrioritizedList sind stabil, beide zuvor Beta seit 1.34. Prioritized List erlaubt Fallback-Ketten bei der Geräteauswahl. Bei RBAC aufpassen: mit dem Beta-Gate DRAResourceClaimGranularStatusAuthorization brauchen Treiber und Scheduler neue Rechte auf resourceclaims/binding und resourceclaims/driver.
- Breaking Portworx in-tree, flex-volume und git-repo entfernt
Das in-tree Portworx-Volume-Plugin ist entfernt, alles läuft über CSI. kubeadm unterstützt flex-volumes nicht mehr integriert. Das git-repo-Volume-Plugin ist ohne Opt-out abgeschaltet. Umbenannt: volume_operation_total_errors zu volume_operation_errors_total, etcd_bookmark_counts zu etcd_bookmark_total.
- läuft aus Service .spec.externalIPs deprecated
Das Feld erzeugt jetzt Warnungen. Laut Projekt-Blog soll kube-proxy das Feld frühestens ab 1.40 nicht mehr unterstützen, mit Opt-in für mehr Migrationszeit, frühestens ab 1.43 entfällt die Unterstützung ganz. Bestehende Services auf LoadBalancer oder Gateway API umstellen.
1.35
17.12.2025- GA In-Place Pod Vertical Scaling GA
InPlacePodVerticalScaling ist stabil, zuvor Beta seit 1.33. CPU- und Memory-Requests laufender Pods lassen sich ändern, ohne den Pod neu zu planen oder neu zu starten. PodStatus führt dafür die Felder Resources und AllocatedResources.
- Breaking cgroup v1 wird abgewiesen
failCgroupV1 steht ab 1.35 auf true, Nodes starten auf cgroup v1 nicht mehr. kubeadm bricht bei init, join und upgrade im Preflight mit Fehler ab statt mit Warnung. Übergangsweise hilft failCgroupV1: false in der ConfigMap kube-system/kubelet-config, gesetzt vor dem Upgrade.
- Breaking kubelet --pod-infra-container-image entfernt
Das Flag ist weg, die Logik liegt in der CRI. In Clustern ohne kubeadm muss es vor dem kubelet-Upgrade von Hand aus der Konfiguration entfernt werden, sonst startet das kubelet nicht. Ebenfalls entfernt: die StorageVersionMigration-API in v1alpha1, vorhandene Ressourcen vorher löschen.
- neu Workload-API und Gang Scheduling (Alpha)
Neu ist scheduling.k8s.io/v1alpha1 mit dem Workload-Objekt für Scheduling-Anforderungen auf Workload-Ebene, dazu das Scheduler-Plugin GangScheduling für All-or-Nothing-Platzierung. Gedacht für Batch- und Training-Lasten, die nur vollständig oder gar nicht starten sollen.
- läuft aus kube-proxy ipvs-Modus deprecated
Der ipvs-Modus ist als deprecated markiert. Einen Zeitplan gibt es seit 1.37: ab 1.40 soll ipvs per Default aus sein, ab 1.43 ganz entfallen (KEP-5495). Empfohlener Zielmodus ist nftables.
1.34
27.08.2025- GA Dynamic Resource Allocation, Kern GA
DRA in der Ausprägung structured parameters ist stabil, zuvor Beta seit 1.32. GPUs und andere Spezialgeräte werden über ResourceClaims angefordert statt über Device Plugins. Die kubelet-gRPC-API der DRA-Treiber ist auf v1 gehoben, v1beta1 gilt ab 1.34 als deprecated.
- GA VolumeAttributesClass GA
Stabil, zuvor Beta seit 1.31. Storage-Parameter wie IOPS oder Durchsatz lassen sich am laufenden PVC ändern, ohne neu zu provisionieren. Ebenfalls GA: Recover from Volume Expansion Failure, das fehlgeschlagene Volume-Vergrößerungen zurücknehmbar macht.
- neu Pod-Level Resources (Beta, per Default an)
CPU und Memory lassen sich in pod.spec.resources für den ganzen Pod setzen statt nur je Container. Das entschärft sidecar-lastige Deployments, bei denen das Budget bisher von Hand auf die Container verteilt werden musste.
- Breaking Metrik-Labels an API-Server und etcd umgebaut
ACTION REQUIRED laut Release Notes: bei den Cache-, Storage- und etcd-Metriken ersetzen die Labels group und resource das bisherige resource_prefix beziehungsweise type, bei Watch-Metriken ersetzt resource das Label kind. Dashboards und Alerting-Regeln auf apiserver_cache_*, apiserver_storage_*, etcd_request_* und apiserver_watch_* vor dem Upgrade anpassen.
Quellen
- kubernetes/kubernetes, CHANGELOG 1.37
- Kubernetes v1.37, Release-Blog
- kubernetes/kubernetes, CHANGELOG 1.36
- kubernetes/kubernetes, CHANGELOG 1.35
- kubernetes/kubernetes, CHANGELOG 1.34
- kubernetes/kubernetes, versioned_feature_list.yaml
- KEP-5495, ipvs-Modus von kube-proxy
- Kubernetes Blog, Deprecation von Service externalIPs