Container: Kubernetes 1.19 bietet mehr Vorhersehbarkeit und StabilitÀt
Shenzhen, Hafen von Yantian
(Bild: zhangyang13576997233 / Shutterstock.com)
Das neue Release bringt eine Vielzahl wichtiger Verbesserungen, die unter anderem die Planung von Upgrades erleichtern sollen.
Die Kubernetes-Community hat die Version 1.19 ihrer Container-Orchestrierungsplattform freigegeben. Sie folgt auf das im MĂ€rz veröffentlichte Kubernetes 1.18 [1] und ist offenbar das Release in der Geschichte der Software, das am lĂ€ngsten bis zur Fertigstellung gebraucht hat, unter anderem natĂŒrlich auch wegen der BeeintrĂ€chtigungen durch die COVID-19-Pandemie. Von statistischer Seite lĂ€sst sich konstatieren, dass zwölf Erweiterungen nun als stabil gelten dĂŒrfen, 18 weitere haben nun Beta-Status und wiederum 13 weitere haben den Schritt Richtung Alpha vollzogen.
Die lange Reise des Ingress Controller
Den Kubernetes Ingress Controller gibt es als API bereits seit Kubernetes 1.1, er ist seitdem (November 2015) aber immer im Beta-Stadium verblieben. Er dient dazu, den externen Zugriff auf Dienste in einem Cluster zu kontrollieren, um HTTP- und HTTPS-Routen offenzulegen. Mit ihm lassen sich Lastausgleich und SSL/TLS verwalten sowie namensbasierte virtuelle Hosting-Funktionen bereitstellen. Nun hat man ihn als reif genug deklariert, um ihn zu den Networking v1 APIs hinzuzufĂŒgen.
Als stabil gilt in Kubernetes 1.19 nun die FĂ€higkeit, die ĂbergĂ€nge von einer Beta- zu einer stabilen Version automatisch verfolgen und darauf reagieren zu können. Das damit verbundene Ziel ist es zu verhindern, dass APIs ĂŒber einen lĂ€ngeren Zeitraum in der Beta-Phase verbleiben. In der Folge sind Tags erforderlich, die anzeigen, wann eine API mit Beta-Status eingefĂŒhrt wurde. Eine API, die im Beta-Stadium bleibt, wird drei Versionen spĂ€ter veraltet und drei weitere danach entfernt. In dem Kontext gibt es jetzt auch Warnmeldungen fĂŒr API-Consumer und Metriken fĂŒr Cluster-Administratoren. Dieses Feature hat aber noch Beta-Status. Selbiges gilt fĂŒr das HinzufĂŒgen des AppProtocol bei Services und Endpoints.
Viel Security
Die Sicherheitseinrichtung im Linux-Kernel seccomp (Security Computing Mode) hat jetzt in Kubernetes 1.19 auch GA-Status (General Availability). Mit ihr lĂ€sst sich unter anderem die Anzahl der Systemaufrufe einschrĂ€nken, die Anwendungen durchfĂŒhren können. seccomp ist seit Kubernetes 1.3 Bestandteil der Orchestrierungsplattform, allerdings mit einigen EinschrĂ€nkungen: so war beim Einsatz von seccomp-Profilen auf Pods eine Anmerkung zu einer PodSecurityPolicy erforderlich.
Seit Kubernetes 1.8 enthalten Cluster einen (Beta-)Prozess, um das anfĂ€ngliche Zertifikat/SchlĂŒsselpaar zu erhalten und bei Ablauf des Zertifikats zu rotieren. In Kubernetes 1.19 gilt das Feature nun als stabil. AuĂerdem hat der NodeRestriction-Admission-Controller jetzt ausreichenden Reifegrad, sodass er fĂŒr den Produktiveinsatz empfohlen wird.
Scheduler-Profile und Pod Topology Spread
Die Möglichkeit, das Verhalten des Kubernetes-Schedulers anzupassen, indem eine Konfigurationsdatei geschrieben und ihr Pfad als Kommandozeilenargument ĂŒbergeben wird, ist zur Beta-Phase gelangt. Zusammen mit der Beta-Version der Scheduler-Profile, die es dem Scheduler erlauben, mehrere Scheduler-Profile auszufĂŒhren, die mit einem Scheduler-Namen verknĂŒpft sind, bedeutet das, dass Kubernetes eine gröĂere und breitere Palette von Workloads und AnwendungsfĂ€llen unterstĂŒtzen kann.
Die "Pod Topology Spread"-Funktion, die Topologien automatisch gewichtet und eine bessere Differenzierung zwischen Knoten und Zonen anwendet, um ausgewogenere Ergebnisse ĂŒber EinschrĂ€nkungen hinweg zu erzielen, ist jetzt mit Version 1.19 stabil. Zuvor musste man die Inter-Pod-Anti-AffinitĂ€t verwenden, die es nicht zulĂ€sst, dass mehr als ein Pod in einer FehlerdomĂ€ne existiert. Die neue Funktion unterstĂŒtzt mehr als einen Pod in einer FehlerdomĂ€ne. Ein weiteres sicherlich bemerkenswertes Features ist eine neue Option fĂŒr podSpecs, die die PrĂ€emptionierung vorhandener Arbeitslasten verhindert, was insbesondere bei der Verwendung bestimmter Arten von lang laufenden Batch-Workloads der Fall sein kann.
Kubernetes 1.19 fĂŒhrt neue Methoden in die klog-Bibliothek ein, die eine strukturiertere Schnittstelle fĂŒr die Formatierung von Protokollnachrichten bieten sollen. Jeder vorhandenen formatierten Protokollmethode (Infof, Errorf) steht nun eine strukturierte Methode (InfoS, ErrorS) gegenĂŒber. Die neuen Protokolliermethoden akzeptieren Protokollnachrichten als erstes Argument und eine Liste von SchlĂŒssel-Werte-Paaren als variadisches zweites Argument. Dieser Ansatz ermöglicht wohl die inkrementelle Ăbernahme der strukturierten Protokollierung, ohne eine gesamte Kubernetes-Installation auf einmal in eine neue API zu konvertieren.
Mehr Informationen
Bislang wurden Kubernetes-Release fĂŒr neun Monate offiziell unterstĂŒtzt. Eine Umfrage hatte jedoch ergeben, dass viele Kubernetes lieber lĂ€nger auf eine Kubernetes-Ausgabe setzen wĂŒrden. Deswegen wurde das LTS-Zeitfenster (Long-Term Support) jetzt auf ein Jahr verlĂ€ngert.
Wer tiefer in die Neuerungen von Kubernetes 1.19 einsteigen will, findet in der AnkĂŒndigung einen guten Start [2]. Kubernetes-Mitentwickler wie Red Hat [3] und VMware [4] bieten in aktuellen BlogbeitrĂ€gen weitere Hintergrundinformationen. Geplant ist, dass mit Kubernetes 1.20 ein weiteres Release erscheinen soll â wohl im Dezember.
(ane [5])
URL dieses Artikels:
https://www.heise.de/-4878510
Links in diesem Artikel:
[1] https://www.heise.de/news/Container-Orchestrierung-Kubernetes-1-18-bietet-Beta-Bestandteile-4690862.html
[2] https://kubernetes.io/blog/2020/08/26/kubernetes-release-1.19-accentuate-the-paw-sitive/
[3] https://www.openshift.com/blog/kubernetes-1.19-arrives
[4] https://tanzu.vmware.com/content/blog/kubernetes-1-19-is-here
[5] mailto:ane@heise.de
Copyright © 2020 Heise Medien