Container: CRI-O 1.22 bringt konfigurierbare Metriken

In Version 1.22 der Container-Runtime-Interface-Implementierung für Kubernetes sind konfigurierbare Metriken und eine API-Änderung mit an Bord.

In Pocket speichern vorlesen Druckansicht

(Bild: zhangyang13576997233 / Shutterstock.com)

Lesezeit: 2 Min.

Das Incubator-Projekt der Cloud Native Computing Foundation (CNCF) CRI-O folgt dem Releasezyklus von Kubernetes und ist in Anlehnung an Kubernetes 1.22 nun ebenfalls in Version 1.22 erschienen. CRI-O ist eine Implementierung des Kubernetes Container Runtime Interface (CRI), um die Verwaltung und den Launch von OCI-Containern (Open Container Initiative) mit Kubernetes zu ermöglichen – und auch der Name CRI-O leitet sich von den Abkürzungen CRI und OCI ab. CRI-O 1.22 widmet sich unter anderem der Konfigurierbarkeit von Metriken.

CRI-O kann Metriken über Image Pulls und Layer anzeigen, beispielsweise über container_runtime_crio_image_pulls_by_digest oder container_runtime_crio_image_pulls_by_name, die allerdings bisher eine sehr hohe Kardinalität besitzen konnten. Das soll Version 1.22 lösen, indem sie eine Konfigurationsoption sowie ein CLI Flag einführt, um aktivierte Metriken konfigurieren zu können. Standardmäßig sind alle Metriken aktiviert und es ist möglich, die Metriken-Kollektoren wegzulassen oder sie mit dem Präfix container_runtime_ und/oder crio_ zu versehen.

Daneben sollen die Logging-Messages mit CRI-O 1.22 an Übersichtlichkeit gewinnen. Dazu hat das CRI-O-Team ein klog zur Logrus Logging Shim hinzugefügt, was die Konvertierung von Messages in das Logrus-Format unter Beibehaltung des Log-Layouts erlaubt. Der Vorher-Nachher-Vergleich sieht dann so aus:

INFO[2021-06-07 13:33:27.507085664+02:00] Starting CRI-O, version: 1.21.0, git: 1559a9af5e08f7c0a184ca5a3e0656848cfb6482(dirty)
E0607 13:33:30.689353 1786399 httpstream.go:143] (conn=&{0xc000560160 [0xc000323a40] {0 0} 0x1b90c80 0x13b4320}, request=0) timed out waiting for streams
E0607 13:33:30.690007 1786399 httpstream.go:143] (conn=&{0xc000560160 [0xc000323a40 0xc0006a2280] {0 0} 0x1b90c80 0x13b4320}, request=0) timed out waiting for streams
INFO[2021-06-07 13:34:26.749451747+02:00] Starting CRI-O, version: 1.21.0, git: 793452dc36a72251984f65a79eb28959b54e49e2(dirty)
ERRO[2021-06-07 13:34:29.546098148+02:00] (conn=&{0xc00086a840 [0xc0004d6f00] {0 0} 0x1b91ca0 0x13b5340}, request=0) timed out waiting for streams
ERRO[2021-06-07 13:34:29.546657404+02:00] (conn=&{0xc00086a840 [0xc0004d6f00 0xc000298280] {0 0} 0x1b91ca0 0x13b5340}, request=0) timed out waiting for streams

Zudem bringt Version 1.22 eine API-Änderung mit: Um einen Workload zu überschreiben, ist nun eine Annotation des Pods mit $prefix/$ctr_name = {"$resource_type": "$resource_value"} nötig. Das Workloads-Feature ist nun nachträglich als experimentell gekennzeichnet. Weitere Neuerungen betreffen sicherheitsrelevante Aspekte wie die Erstellung selbst-signierter Zertifikate für den Secure Metrics Endpoint sowie Konfigurationsmöglichkeiten für selbigen.

Die Release Notes auf GitHub bieten Details zu allen Änderungen in CRI-O 1.22, das einen an die Container-Orchestrierung Kubernetes angepassten Release-Zyklus aufweist, die ebenfalls in Version 1.22 vorliegt.

(mai)