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

ayedo Alien Kubernetes Hat

Hosten Sie Ihre Apps bei ayedo

Profitieren Sie von skalierbarem App Hosting in Kubernetes, hochverfügbarem Ingress Loadbalancing und erstklassigem Support durch unser Plattform Team. Mit der ayedo Cloud können Sie sich wieder auf das konzentrieren, was Sie am besten können: Software entwickeln.

Jetzt ausprobieren →

Ähnliche Inhalte

Alle Blogs →



ayedo Redaktion · 08.06.2025 · ⏳ 3 Minuten

Neue Wege im KI-Management: Die Gateway API Inference Extension

Moderne generative KI- und große Sprachmodelle (LLMs) stellen Kubernetes vor einzigartige Herausforderungen im Datenverkehrsmanagement. Im Gegensatz zu typischen kurzlebigen, zustandslosen Webanfragen …

Lesen →

Neue Wege im KI-Management: Die Gateway API Inference Extension
ayedo Redaktion · 06.06.2025 · ⏳ 2 Minuten

Wie Sie sicherstellen, dass Ihr Sidecar-Container zuerst startet

Einführung in die Verwaltung von Sidecar-Containern in Kubernetes In der Welt von Kubernetes sind Sidecar-Container nützliche Helfer, die Funktionen erweitern oder zusätzliche Aufgaben für die …

Lesen →

Wie Sie sicherstellen, dass Ihr Sidecar-Container zuerst startet
ayedo Redaktion · 05.06.2025 · ⏳ 2 Minuten

Gateway API v1.3.0: Neue Funktionen für flexibles Request Mirroring und mehr!

Wir freuen uns, die allgemeine Verfügbarkeit der Gateway API v1.3.0 bekanntzugeben! Diese Version wurde am 24. April 2025 veröffentlicht und bringt spannende neue Funktionen mit sich. Was ändert sich …

Lesen →

Gateway API v1.3.0: Neue Funktionen für flexibles Request Mirroring und mehr!
Katrin Peter · 03.06.2025 · ⏳ 2 Minuten

Die vergessene Schwachstelle in euren CI/CD-Pipelines: Die Registry

Die vergessene Schwachstelle in euren CI/CD-Pipelines: Die Registry Jeder redet über Build-Pipelines, Deployment-Automatisierung, GitOps, Blue/Green-Rollouts, Canary Releases. Alles sauber …

Lesen →

Die vergessene Schwachstelle in euren CI/CD-Pipelines: Die Registry
Katrin Peter · 03.06.2025 · ⏳ 2 Minuten

Application Performance sollte messbar sein — jederzeit, in Echtzeit

Wer Anwendungen produktiv betreibt, braucht keine schönen Dashboards, sondern harte Daten. Performance-Probleme entstehen nie dann, wenn Zeit für Debugging ist. Sie kommen genau dann, wenn Systeme …

Lesen →

Application Performance sollte messbar sein — jederzeit, in Echtzeit

Interessiert an weiteren Inhalten? Hier gehts zu allen Blogs →


Noch Fragen? Melden Sie sich!

Unsere DevOps-Experten antworten in der Regel innerhalb einer Stunde.

Zu Gen-Z für E-Mail? Einfach mal Discord versuchen. Unter +49 800 000 3706 können Sie unter Angabe Ihrer Kontaktdaten auch einen Rückruf vereinbaren. Bitte beachten Sie, dass es keine Möglichkeit gibt, uns telefonisch direkt zu erreichen. Bitte gar nicht erst versuchen. Sollten Sie dennoch Interesse an synchroner Verfügbarkeit via Telefon haben, empfehlen wir Ihnen unseren Priority Support.