Neu in kubectl
kubectl folgt dem Kubernetes-Zyklus und trägt dieselbe Versionsnummer. Die Schwerpunkte der letzten Linien sind kuberc als eigene Konfigurationsebene für das CLI-Verhalten, inzwischen samt Allowlist für Credential-Plugins, und KYAML als präziseres Ausgabeformat, seit 1.37 stable. Daneben prüft kubectl Aufrufe und Flag-Kombinationen strenger. Das trifft vor allem Skripte.
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- GA kubectl get -o kyaml stabil
Die KYAML-Ausgabe ist stable. Eingeführt wurde sie in 1.34 als Opt-in über KUBECTL_KYAML=true, seit 1.35 ist sie per Default aktiv. Der 1.37-Client wertet die Umgebungsvariable KUBECTL_KYAML nicht mehr aus, das Format lässt sich nicht mehr abschalten. Für generierte Manifeste und Diffs in Pipelines ist es damit belastbar.
- neu explain --max-depth
kubectl explain --recursive begrenzt mit --max-depth die Tiefe der ausgegebenen Felder. 0 heißt unbegrenzt, Werte über 0 verlangen --recursive. Bei tief verschachtelten CRDs war die rekursive Ausgabe bisher praktisch unlesbar.
- neu --proxy-url überschreibt die kubeconfig
Das neue globale Flag --proxy-url setzt den in der kubeconfig hinterlegten Proxy für einen einzelnen Aufruf außer Kraft. Das hilft, wenn dieselbe kubeconfig aus Netzsegmenten mit verschiedenen Egress-Wegen genutzt wird.
- neu get crd mit Scope und Versionen
Gegen einen 1.37-API-Server zeigt kubectl get crd die Spalten NAME, SCOPE, VERSIONS (nur served) und CREATED AT, mit -o wide zusätzlich GROUP, KIND, SHORTNAMES und ESTABLISHED. Die Tabelle erzeugt der API-Server, die Client-Version spielt keine Rolle. Parser der Tabellenausgabe brechen also mit dem Cluster-Upgrade, nicht mit dem Client-Update.
- Breaking cluster-info dump schreibt restriktive Dateirechte
kubectl cluster-info dump --output-directory legt Dateien mit Modus 0600 und Verzeichnisse mit 0700 an, weil gedumpte Pod-Logs sensible Daten enthalten können. Vorher waren die Dateien world-readable. Automatisierung, die die Dumps unter anderer Kennung weiterverarbeitet, muss das berücksichtigen.
- Breaking get bricht bei --label-columns mit custom-columns ab
kubectl get endet mit einem Fehler, wenn --label-columns zusammen mit -o custom-columns gesetzt ist. Vorher wurde --label-columns dabei still ignoriert. Skripte, die beide Flags kombinieren, vor dem Client-Update prüfen.
- läuft aus kubectl run --filename deprecated
Das bei run schon immer wirkungslose Flag --filename beziehungsweise -f ist deprecated, kubectl warnt beim Aufruf. Laut Deprecation-Meldung fällt es in einem künftigen Release weg, ein Termin ist nicht genannt. Skripte, die mit run -f ein Manifest anzuwenden glaubten, haben nie getan, was sie sollten.
1.36
22.04.2026- neu kubectl wait mit mehreren Conditions
wait akzeptiert mehrere Bedingungen in einem Aufruf. Das ersetzt Ketten aus mehreren wait-Aufrufen in Deployment-Skripten und Readiness-Gates.
- neu --detach-keys für attach und run
Eine interaktive Session lässt sich verlassen, ohne den Container zu beenden. Das versehentliche Beenden eines interaktiv gestarteten Containers war vorher ein realer Betriebsfehler.
- Breaking describe zeigt Events nur noch bei Einzelobjekten
Aus Performancegründen blendet kubectl describe zugehörige Events nur noch ein, wenn genau ein Objekt beschrieben wird. Bei mehreren Objekten oder Präfix-Matching muss --show-events explizit gesetzt werden.
- neu Mehr Kontext in den Standardausgaben
get node -o wide zeigt eine ARCH-Spalte, get ingressclass markiert die Default-Klasse, describe node listet aggregierte ResourceSlices mit Name, Treiber und Pool, describe service zeigt appProtocol. Bei exec und logs mit falschem Containernamen listet kubectl die gültigen Namen auf.
- läuft aus kuberc-Allowlist: name wird zu command
Die kubectl-kuberc-Subcommands sind Beta, zuvor Alpha. In credentialPluginAllowlist ersetzt das Feld command das Feld name. name ist deprecated, wird beim Einlesen aber weiter auf command abgebildet. Ein Fehler entsteht nur, wenn ein Eintrag beide Felder mit verschiedenen Werten setzt. Neu ist außerdem kubectl kuberc set --section credentialplugin --policy Allowlist --allowlist-entry command=<plugin>, mit dem sich Policy und Allowlist setzen lassen, ohne die Datei von Hand zu bearbeiten.
1.35
17.12.2025- Breaking kubectl exec verlangt --
Die Form kubectl exec [POD] [COMMAND] wird nicht mehr unterstützt, korrekt ist kubectl exec [POD] -- [COMMAND]. Die alte Form bricht mit einem Usage-Fehler ab. Das ist die praktisch wichtigste Änderung der Linie, weil sie bestehende Skripte, Runbooks und CI-Jobs trifft. Vor dem Rollout eines Clients ab 1.35 gezielt nach exec-Aufrufen ohne -- suchen.
- neu KYAML per Default verfügbar
kubectl get -o kyaml ist ohne Zutun aktiv. Abschalten ließ es sich in 1.35 und 1.36 über die Umgebungsvariable KUBECTL_KYAML=false, der 1.37-Client wertet sie nicht mehr aus.
- neu kubectl kuberc view und set
Zwei Subcommands bearbeiten die kuberc-Datei, statt sie von Hand zu editieren. Das Schema bekommt credentialPluginPolicy (AllowAll, DenyAll, Allowlist) und credentialPluginAllowlist, mit denen sich einschränken lässt, welche Credential-Plugins kubectl ausführen darf.
- GA --chunk-size stabil
Stabil, zuvor Beta, verfügbar bei describe, get, drain und events. Relevant in großen Clustern, um Listenabfragen zu paginieren statt den API-Server mit einer Vollabfrage zu belasten.
- Breaking Geänderte Ausgaben brechen Parser
describe pods nennt in Event-Meldungen zusätzlich den fieldPath, also etwa den Containernamen, was das bisherige Meldungsformat ändert. scale meldet nicht gefundene Ressourcen jetzt im Standardformat Error from server (NotFound). Die Umgebungsvariable KUBECTL_OPENAPIV3_PATCH ist entfernt.
1.34
27.08.2025- neu Neues Ausgabeformat KYAML
kubectl kennt das Ausgabeformat kyaml, eine strikte Teilmenge von YAML, die jeder YAML-Parser liest. Die Formatierung liegt zwischen JSON und YAML und ist expliziter als der YAML-Default, was Fehldeutungen bei Einrückung und impliziten Typen vermeidet. In 1.34 nur nach Opt-in über KUBECTL_KYAML=true verfügbar.
- neu kuberc auf Beta
Die kuberc-Datei steuert das Verhalten von kubectl selbst, also Aliase und Default-Flags, und ist bewusst getrennt von der kubeconfig, die den Clusterzugriff regelt. Shell-Completion greift auch für in kuberc definierte Aliase.
- neu kubectl api-resources maschinenlesbar
api-resources kann JSON und YAML ausgeben. Damit lässt sich die Ressourcenliste eines Clusters ohne Textparsing auswerten, etwa für Drift-Checks oder RBAC-Generatoren.
- läuft aus kubeconfig-Feld preferences deprecated
Das Feld preferences in der kubeconfig ist zugunsten von kuberc als deprecated markiert. Ein Entfernungstermin steht nicht in den Release Notes.