Kubernetes 1.16 startet mit mehr als 30 Verbesserungen

Mit Freigabe des neuen Release der Container-Orchestrierung Kubernetes gelten Custom Resource Definitions nun als offiziell generell verfügbar.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 22 Beiträge

(Bild: Travel mania/Shutterstock.com)

Von

Die Container-Orchestrierung Kubernetes liegt ab sofort in Version 1.16 vor. Im dritten Release des laufenden Jahres finden sich insgesamt 31 Neuerungen, von denen acht als stabil einzustufen sind, acht weitere befinden sich noch im Beta- und der Rest im Alpha-Stadium. Wie geplant stehen Custom Resource Definitions (CRDs) nun generell zur Verfügung und bilden ab sofort die neue Basis für Extensions im Kubernetes-Ökosystem. Einige weitere Verbesserungen in der neuen Version beziehen sich auf Volumes und den Umgang mit Metriken.

Mit Erscheinen von Kubernetes 1.16 und den apiextensions.k8s.io/v1 gilt der Umbauprozess für Third Party Resources als abgeschlossen. Durch das Upgrade auf die neuen APIs ergeben sich allerdings auch einige Neuerungen: Strukturschemata, das Beschneiden unbekannter Felder, Validierung und der Schutz der *.k8s.io-Gruppe sind nun erforderlich, um die Langlebigkeit von APIs zu gewährleisten. Diese und andere Standardeinstellungen sowie Konvertierungsmechanismen für CRDs sollen eine Weiterentwicklung der APIs sicherstellen. Im Hinblick auf die nächsten Releases wollen die Kubernetes-Macher den Fokus dabei vor allem auf Datenkonsistenz für die API-Clients legen.

Um die Integration in Windows-Umgebungen und die Arbeit mit Windows-Containern zu vereinfachen, bietet Kubernetes einen Active Directory Group Managed Service Account (GMSA), der nun erstmals in die Beta-Phase übergeht. Als ein Art Active Directory-Konto ermöglicht der GMSA Windows-Containern authentifizierten Zugriff auf externe Ressourcen. Darüber hinaus bietet der GMSA eine automatische Passwortverwaltung, eine vereinfachte Verwaltung von Service Principal Name (SPN) und erlaubt es, die Verwaltung an andere Administratoren zu delegieren.

Unter den Neuerungen in Kubernetes 1.16, die noch Alpha-Status haben, sind vor allem die Endpoint Slices erwähnenswert. Als Alternative zu den Endpoint-Ressourcen, die eine entscheidende Rolle für das Routing spielen, sollen sie zu besserer Skalierbarkeit von Kubernetes-Diensten beitragen. Der bisherige Ansatz zum Tracking der Netzwerkendpunkte kann in größeren Cluster-Umgebungen schnell zu einer Überlastung führen, wenn jede Änderung an den Endpoint-Ressourcen komplett an alle die Endpunkte überwachenden Instanzen weitergeleitet werden muss. In einem Cluster mit 5000 Nodes und einem 1-MByte-Endpoint-Objekt beispielsweise müssten pro Änderung circa 5 GByte übertragen werden.

Unter anderem benötigt kube-proxy die Informationen, um daraus neue Proxy-Regeln für die Kommunikation der Pods untereinander abzuleiten. Je nach Häufigkeit der Änderungen können dadurch massive Belastungen des Netzwerkverkehrs auftreten. Mit den Endpoint Slices lassen sich die Netzwerkendpunkte für einen Service auf mehrere Ressourcen aufteilen. Standardmäßig sind sie auf 100 beschränkt. Die bei Änderungen erforderliche Datenübertragung lässt sich mit den Endpoint Slices etwa um den Faktor 200 verringern, wie die folgende Tabelle zeigt:

Endpoints Endpoint Slices
# of resources 1 20k / 100 = 200
# of network endpoints stored 1 * 20k = 20k 200 * 100 = 20k
size of each resource 20k * const = ~2.0 MB 100 * const = ~10 kB
watch event data transferred ~2.0MB * 5k = 10GB ~10kB * 5k = 50MB

Die Einführung von Endpoint Slices eröffnet darüber hinaus auch erweiterte Optionen für die Topologie-Attribute. Zunächst sind die mit den vorhandenen Topologiebezeichnungen gefüllt, die in Kubernetes dazu dienen, Attribute wie Region und Zone anzugeben. Künftig lassen sie sich aber auch mit individuellen Labels für speziellere Anwendungsfälle befüllen. Auch Adresstypen lassen sich mit den Endpoint Slices flexibler nutzen. Enthalten sie beispielsweise eine Liste von Adressen, ließen sie sich für Dual-Stack-Endpunkte mit IPv4- und IPv6-Adressen verwenden.

Eine komplette Übersicht aller Verbesserungen der neuen Kubernetes-Version findet sich im offiziellen Blogbeitrag zur Veröffentlichung. Das Release der Container-Orchestrierung steht auf GitHub zum Download parat. (map)