Freigeben über


Container Storage Interface-Treiber (CSI) in Azure Kubernetes Service (AKS)

Container Storage Interface (CSI) ist ein Standard für die Bereitstellung beliebiger Block- und Dateispeichersysteme für containerisierte Workloads in Kubernetes. Durch die Einführung und Verwendung von CSI kann Azure Kubernetes Service (AKS) Plug-Ins schreiben, bereitstellen und durchlaufen, um neue Speichersysteme in Kubernetes verfügbar zu machen oder vorhandene Speichersysteme in Kubernetes zu verbessern, ohne den Kerncode von Kubernetes zu ändern und die Releasezyklen abwarten zu müssen.

Die Unterstützung des CSI-Speichertreibers in AKS ermöglicht die native Verwendung von Folgendem:

  • Azure-Datenträger können zum Erstellen einer DataDisk-Ressource für Kubernetes verwendet werden. Datenträger können auf Hochleistungs-SSDs basierenden Speicher vom Typ „Azure Storage Premium“ oder auf regulären Festplatten oder Standard-SSDs basierenden Speicher vom Typ „Azure Storage Standard“ nutzen. Für die meisten Produktions- und Entwicklungsworkloads wird die Verwendung von Storage Premium empfohlen. Azure-Datenträger werden als ReadWriteOnce eingebunden und sind nur für einen einzelnen Knoten in AKS verfügbar. Verwenden Sie für die Speichervolumes, auf die mehrere Knoten gleichzeitig zugreifen können, Azure Files.
  • Azure Files kann zum Einbinden einer SMB 3.0/3.1-Freigabe basierend auf einem Azure-Speicherkonto für Pods verwendet werden. Mit Azure Files können Daten über mehrere Knoten und Pods hinweg gemeinsam genutzt werden. Azure Files kann auf regulären Festplattenlaufwerken basierenden Azure Standard-Speicher oder auf Hochleistungs-SSDs basierenden Azure Premium-Speicher verwenden.
  • Azure Blob Storage kann verwendet werden, um einen Blobspeicher (oder Objektspeicher) als Dateisystem in einem Container oder Pod einzubinden. Durch die Verwendung von Blob Storage kann Ihr Cluster Anwendungen unterstützen, die mit großen unstrukturierten Datasets wie Protokolldateien, Bildern oder Dokumenten, HPC-Daten und mehr arbeiten. Wenn Sie Ihre Daten in Azure Data Lake Storage erfassen, können Sie sie außerdem direkt in AKS einbinden und verwenden, ohne ein anderes Interimsdateisystem zu konfigurieren.

Tipp

Wenn Sie eine vollständig verwaltete Lösung für den Zugriff auf Daten auf Blockebene benötigen, sollten Sie Azure Container Storage anstelle von CSI-Treibern verwenden. Azure Container Storage ist in Kubernetes integriert und ermöglicht die dynamische und automatische Bereitstellung persistenter Volumes. Azure Container Storage unterstützt Azure Disks, Ephemeral Disks und Azure Elastic SAN (Vorschau) als Sicherungsspeicher und bietet Flexibilität und Skalierbarkeit für zustandsbehaftete Anwendungen, die auf Kubernetes-Clustern ausgeführt werden.

Voraussetzungen

  • Die Azure CLI ab Version 2.42 muss installiert und konfiguriert sein. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
  • Wenn der Open-Source-CSI-Treiber für Storage auf Ihrem Cluster installiert ist, deinstallieren Sie ihn, bevor Sie den Azure Storage CSI-Treiber aktivieren.
  • Um die Azure Policy für die Definition der AKS-Richtlinie durchzusetzen, dass Kubernetes-Cluster den Container Storage Interface (CSI)-Treiber StorageClass verwenden müssen, muss das Azure Policy Add-on auf neuen und bestehenden Clustern aktiviert werden. Weitere Informationen zur Aktivierung eines bestehenden Clusters finden Sie im Abschnitt Learn Azure Policy für Kubernetes.

Unterstützte Szenarien für die Datenträgerverschlüsselung

CSI-Speichertreiber unterstützen die folgenden Szenarien:

Aktivieren von CSI-Speichertreibern in einem vorhandenen Cluster

Um CSI-Speichertreiber in einem neuen Cluster zu aktivieren, fügen Sie je nach Speichersystem einen der folgenden Parameter hinzu:

az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller

Diese Aktion kann mehrere Minuten in Anspruch nehmen. Sobald der Vorgang abgeschlossen ist, sollten Sie in der Ausgabe den Status der Aktivierung des Treibers auf Ihrem Cluster sehen. Das folgende Beispiel ähnelt dem Abschnitt, der die Ergebnisse beim Aktivieren des Blob Storage-CSI-Treibers angibt:

"storageProfile": {
    "blobCsiDriver": {
      "enabled": true
    },

Deaktivieren von CSI-Speichertreibern in einem neuen oder vorhandenen Cluster

Um CSI-Speichertreiber in einem neuen Cluster zu deaktivieren, fügen Sie je nach Speichersystem einen der folgenden Parameter hinzu:

az aks create \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller \
    --generate-ssh-keys

Um CSI-Speichertreiber in einem vorhandenen Cluster zu deaktivieren, verwenden Sie je nach Speichersystem einen der oben aufgeführten Parameter:

az aks update \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller 

Hinweis

Wir empfehlen, beim Löschen eines CSI-Volumes das entsprechende PersistentVolumeClaim-Objekt statt des PersistentVolume-Objekts zu löschen. Der externe Bereitsteller im CSI-Treiber reagiert auf das Löschen von „PersistentVolumeClaim“ und gibt basierend auf seiner Rückgewinnungsrichtlinie den DeleteVolume-Aufruf für die CSI-Volumetreiberbefehle aus, um das Volume zu löschen. Das PersistentVolume-Objekt wird dann gelöscht.

Migrieren von benutzerdefinierten, strukturinternen Speicherklassen zu CSI

Ab Kubernetes, Version 1.26, sind die persistenten strukturimmanenten Volumetypen kubernetes.io/azure-disk und kubernetes.io/azure-file veraltet und werden nicht mehr unterstützt. Strukturinterne Treiber bezieht sich auf die Speichertreiber, die Teil des Kubernetes-Kerncodes sind, im Gegensatz zu den CSI-Treibern, bei denen es sich um Plug-Ins handelt.

Es ist nicht geplant, diese Treiber nach ihrer Einstellung zu entfernen. Sie sollten jedoch zu den entsprechenden CSI-Treibern disks.csi.azure.com und file.csi.azure.com migrieren. Informationen zu den Migrationsoptionen für Ihre Speicherklassen und zum Upgraden Ihres Clusters auf die Verwendung von Azure-Datenträgern und Azure Files-CSI-Treibern finden Sie unter Migrieren von strukturimmanenten zu CSI-Treibern.

Wenn Sie Speicherklassen für strukturinterne Treiber erstellt haben, funktionieren diese Speicherklassen weiterhin, da die CSI-Migration nach dem Upgrade Ihres Clusters auf 1.21.x aktiviert ist. Wenn Sie CSI-Features verwenden möchten, müssen Sie die Migration durchführen.

Nächste Schritte