Kubernetes 1.15 bietet mehr Erweiterbarkeit über Custom Resource Definitions
Das Update der Container-Orchestrierung Kubernetes bereitet auf die generelle Verfügbarkeit von CRDs und Admission Webhooks vor.
- Matthias Parbel
Die Container-Orchestrierung Kubernetes liegt ab sofort in Version 1.15 vor. Das zweite Release des laufenden Jahres wartet mit insgesamt 25 Neuerungen auf – allerdings sind nur zwei davon als stabil eingestuft, der Rest befindet sich noch im Beta- beziehungsweise Alpha-Stadium. Zu den stabilen Ergänzungen zählen zwei neue Befehle für das Command-Line Interface Kubectl: get und describe sollen das Bauen von Drittanbieter-API-Erweiterungen und Custom Resource Definitions (CRDs) erleichtern. Kubernetes-Entwickler sollen darüber hinaus von der jetzt stabilen Unterstützung für Go-Module profitieren.
Das zum Ausführen von Befehlen für Kubernetes-Cluster ausgelegte CLI war bereits im letzten Release Kubernetes 1.14 stark überarbeitet worden. Die nun neu hinzugekommenen Kubectl-Kommandos sind nur eine von vielen weiteren vorbereitenden Maßnahmen rund um die angepeilte generelle Verfügbarkeit (General Availability) von Custom Resource Definitions und Admission Webhooks, die das Kubernetes-Team für eines der nächsten Releases der Container-Orchestrierung anpeilt.
Neues strukturelles Validierungsschema für CRDs
Das auf OpenAPI basierende Validierungsschema in CRDs soll mittelfristig auf das Konzept des Structural Schema überführt werden, das grundsätzlich die nicht-polymorphe und vollständige Typisierung jedes Feldes in einer CustomResource vorsieht. Das in Kubernetes 1.15 dahingehend angepasste OpenAPI-Publishing für CRDs zielt auf Structural Schema ab – zwingend vorgeschrieben ist es vorläufig aber noch nicht.
Die strukturelle Validierung ist allerdings Voraussetzung für die ebenfalls als Beta verfügbare neue CRD-Pruning-Funktion. Sie erlaubt das automatische Entfernen unbekannter Felder in Objekten, die an die Kubernetes-API geschickt werden, und soll verbesserter Datenkonsistenz und Sicherheit dienen. Pruning lässt sich in der CRD mit dem Befehl spec.preserveUnknownFields: false aktivieren. Darüber hinaus stehen Anwendern zwei neue Beta-Funktionen rund um Webhooks zur Verfügung. Die betreffen einerseits die Möglichkeit, "on-the-fly" zwischen verschiedenen Versionen zu konvertieren, wie es Nutzer von nativen Ressourcen gewohnt sind, und zweitens Verbesserungen beim Wiederaufruf.
Im Zuge der Bemühungen, die Installation, das Upgrade und die Konfiguration von Kubernetes weiter zu vereinfachen, hat auch kubeadm einige Verbesserungen erfahren. So steht unter anderem High Availability (HA) als Beta-Funktion zur Verfügung. Anwender können die bereits vertrauten kubeadm-Kommandos init und join verwenden, um eine HA-Kontrollebene zu konfigurieren und zu deployen. Auch das Zertifikate-Management soll nun robuster arbeiten. Zu guter Letzt hat kubeadm nun auch ein eigenes Logo bekommen.
Eine komplette Übersicht aller Verbesserungen der neuen Kubernetes-Version findet sich im offiziellen Blogbeitrag zum Release. Wer Kubernetes ausprobieren möchte, findet das Release der Container-Orchestrierung auf GitHub. (map)