Container: Kubernetes 1.20 räumt auf für mehr Stabilität

Der Abschied von Docker ist besiegelt, die Integration des Container Runtime Interface nahezu abgeschlossen. CronJobs erhalten eine letzte Bewährungschance.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Kubernetes 1.19 bietet mehr Vorhersehbarkeit und Stabilität

Shenzhen, Hafen von Yantian

(Bild: zhangyang13576997233 / Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Matthias Parbel

Das Kubernetes-Entwicklerteam setzt die mit Version 1.19 begonnenen Aufräumarbeiten konsequent fort: das Release 1.20 der Container-Orchestrierung wartet mit über 40 Neuerungen auf – darunter 16 verbesserte Funktionen und 11, die nun endlich als stabil eingestuft sind. Vor allem der Weiterentwicklung wichtiger Features wie CronJobs und dem Kubelet-CRI-Support, die seit langer Zeit in der Alphaphase verharrten, hat das Team besondere Aufmerksamkeit gewidmet. Funktionen, die keinen kontinuierlichen Fortschritt in Richtung Stabilität zeigen, werden künftig schneller als deprecated (veraltet) gekennzeichnet.

Wie bereits im Changelog zur ersten Beta von Kubernetes 1.20 angekündigt, gilt die Docker-Unterstützung in Kubelet als deprecated und soll in einem der nächsten Releases vollständig entfallen. Die Integration des Container Runtime Interface (CRI) als Plug-in-Interface für Kubelet hat nach Einschätzung des Entwicklerteams inzwischen den erforderlichen Reifegrad erreicht, um auf CRI-kompatible Container-Laufzeitumgebungen umsteigen zu können, die sich ohne Neukompilieren nutzen lassen. Dazu zählen insbesondere CRI-O und containerd, während Docker stets auf die Zwischenschicht Dockershim angewiesen ist.

Die CRI API wurde auch bisher schon intensiven Tests unterzogen, behielt aber bis einschließlich Kubernetes 1.19 den Alpha-Status. Im neuesten Release stuft das Entwicklerteam die Schnittstelle nun als Beta ein und will baldmöglichst die fehlenden Arbeiten vervollständigen, um die CRI API als stabil kennzeichnen zu können.

Das gleiche gilt für die bereits in Kubernetes 1.4 eingeführten CronJobs, mit denen sich regelmäßig wiederkehrende Aufgaben im Cluster ausführen lassen. Ursprünglich als ScheduledJobs bezeichnet, sind CronJobs vergleichbar mit dem von UNIX bekannten cron und in Kubernetes als API angelegt, mit der sich Job-Objekte erstellen lassen. Die nun in Kubernetes 1.20 veröffentlichte Neuimplementierung soll den seit 1.8 als Beta gekennzeichneten CronJobs spätestens bis zum übernächsten Release in den Status stabil verhelfen. Wird dieses angepeilte Ziel nicht erreicht, sollen sie deprecated gekennzeichnet und in Kubernetes 1.25 schließlich entfernt werden.

Unter den Funktionen, die ab sofort als stabil gelten, finden sich unter anderen die Built-in-API-Types-Standards, wie sie beim Bau von Custom Resource Definitions (CRDs) als Go Structures zum Einsatz kommen. In Kubernetes 1.20 lässt sich dabei nun der Marker // +default nutzen, um Standardwerte festzulegen. Die Marker werden in OpenAPI-Standard-Felder übersetzt.

type Foo struct {
  // +default=32
  Integer int
  // +default="bar"
  String string
  // +default=["popcorn", "chips"]
  StringList []string
}

Als stabil gilt darüber hinaus die Unterstützung für Snapshots und die Restore-Volume-Funktion. So wie sich die API-Ressourcen PersistentVolume und PersistentVolumeClaim zum Bereitstellen von Volumes für Benutzer und Administratoren verwenden lassen, können auch VolumeSnapshotContent und VolumeSnapshot zum Erstellen von Snapshots für Benutzer und Administratoren genutzt werden.

Weitere Details zu den Neuerungen in Kubernetes 1.20 sowie eine komplette Übersicht aller Deprecations, Verbesserungen und neuen Funktionen finden sich im Kubernetes-Blog.

(map)