Mit Kubernetes v1.33: Image Volumes jetzt im Beta-Stadium!
ayedo Redaktion 2 Minuten Lesezeit

Mit Kubernetes v1.33: Image Volumes jetzt im Beta-Stadium!

Erfahren Sie, was die Beta-Gradierung von Image Volumes in Kubernetes v1.33 für Ihre Container-Strategie bedeutet.
kubernetes kubernetes-news container storage

Image Volumes wurden mit der Kubernetes-Version v1.31 als Alpha-Feature eingeführt und sind nun in der Version v1.33 auf Beta-Status hochgestuft worden. Dies ist Teil von KEP-4639.

Es ist wichtig zu beachten, dass das Feature standardmäßig deaktiviert ist, da noch nicht alle Container-Runtimes vollständige Unterstützung bieten. CRI-O unterstützt das ursprüngliche Feature seit Version v1.31 und wird in v1.33 die Unterstützung für Image Volumes als Beta hinzufügen. containerd hat die Unterstützung für das Alpha-Feature integriert, das Teil der Version v2.1.0 sein wird, und arbeitet an der Beta-Unterstützung im Rahmen von PR #11578.

Was ist neu?

Die größte Neuerung bei der Beta-Gradierung der Image Volumes ist die Unterstützung von subPath und subPathExpr Mounts für Container über spec.containers[*].volumeMounts.[subPath,subPathExpr]. Dies ermöglicht es Endbenutzern, ein bestimmtes Unterverzeichnis eines Image Volumes zu montieren, das nach wie vor als schreibgeschützt (noexec) bereitgestellt wird. Das bedeutet, dass nicht vorhandene Unterverzeichnisse standardmäßig nicht gemountet werden können. Kubernetes wird zudem sicherstellen, dass keine absoluten oder relativen Pfadkomponenten Teil des angegebenen Unterpfades sind. Container-Runtimes sind ebenfalls verpflichtet, diese Anforderungen aus Sicherheitsgründen zu überprüfen. Wenn ein angegebenes Unterverzeichnis in einem Volume nicht existiert, sollten die Runtimes bei der Containererstellung fehlschlagen und dem Benutzer Rückmeldung über bestehende Kubelet-Events geben.

Darüber hinaus sind drei neue Kubelet-Metriken für Image Volumes verfügbar:

  • kubelet_image_volume_requested_total: Zeigt die Anzahl der angeforderten Image Volumes an.
  • kubelet_image_volume_mounted_succeed_total: Zählt die Anzahl der erfolgreichen Mounts von Image Volumes.
  • kubelet_image_volume_mounted_errors_total: Dokumentiert die Anzahl der fehlgeschlagenen Mounts von Image Volumes.

Praktisches Beispiel

Um ein vorhandenes Unterverzeichnis für ein bestimmtes Image Volume zu verwenden, nutzen Sie es einfach als subPath (oder subPathExpr) Wert in den volumeMounts der Container:

apiVersion: v1
kind: Pod
metadata:
  name: image-volume
spec:
  containers:
  - name: shell
    command: ["sleep", "infinity"]
    image: debian
    volumeMounts:
    - name: volume
      mountPath: /volume
      subPath: dir
  volumes:
  - name: volume
    image:
      reference: quay.io/crio/artifact:v2
      pullPolicy: IfNotPresent

Erstellen Sie nun den Pod in Ihrem Cluster:

kubectl apply -f image-volumes-subpath.yaml

Jetzt können Sie sich mit dem Container verbinden:

kubectl attach -it image-volume bash

Und den Inhalt der Datei aus dem dir Unterverzeichnis im Volume überprüfen:

cat /volume/file

Die Ausgabe sollte ähnlich sein:

none 1

Vielen Dank, dass Sie bis zum Ende dieses Blogbeitrags gelesen haben! SIG Node ist stolz darauf, diese Funktion als Teil von Kubernetes v1.33 bereitzustellen.

Als Autor dieses Blogbeitrags möchte ich meinen besonderen Dank an alle beteiligten Personen aussprechen!

Wenn Sie Feedback oder Vorschläge haben, zögern Sie nicht, sich über den Kubernetes Slack (#sig-node) Kanal oder die SIG Node Mailingliste an SIG Node zu wenden.


Quelle: Kubernetes Blog

Ähnliche Artikel