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.
Wichtig
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. 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.
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.
Hinweis
Es wird empfohlen, 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.
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:
- Verschlüsselte verwaltete Datenträger mit kundenseitig verwalteten Schlüsseln mithilfe von Azure Key Vaults, die in einem anderen Microsoft Entra-Mandanten gespeichert sind.
- Verschlüsseln Sie Ihre Azure Storage-Datenträger, die AKS-Betriebssystem- und Anwendungsdaten hosten, mit kundenseitig verwalteten Schlüsseln.
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:
--enable-disk-driver
ermöglicht, den CSI-Treiber für Azure-Datenträger zu aktivieren.--enable-file-driver
ermöglicht es Ihnen, den CSI-Treiber für Azure Files zu aktivieren.--enable-blob-driver
ermöglicht, den CSI-Treiber für Azure Blob Storage zu aktivieren.--enable-snapshot-controller
ermöglicht es Ihnen, den Momentaufnahmecontroller zu aktivieren.
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:
- Mit
--disable-disk-driver
können Sie den CSI-Treiber für Azure-Datenträger deaktivieren. --disable-file-driver
ermöglicht es Ihnen, den CSI-Treiber für Azure Files zu deaktivieren.--disable-blob-driver
ermöglicht Ihnen, den CSI-Treiber für Azure Blob Storage zu deaktivieren.--disable-snapshot-controller
ermöglicht es Ihnen, den Momentaufnahmecontroller zu deaktivieren.
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
Migrieren von benutzerdefinierten, strukturinternen Speicherklassen zu CSI
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.
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.
Nächste Schritte
- Informationen zum Verwenden des CSI-Treibers für Azure-Datenträger finden Sie unter Verwenden von Azure-Datenträgern mit CSI-Treibern.
- Informationen zum Verwenden des CSI-Treibers für Azure Files finden Sie unter Verwenden von Azure Files mit CSI-Treibern.
- Informationen zur Verwendung des CSI-Treibers für Azure Blob Storage finden Sie unter Verwenden von Azure Blob Storage mit CSI-Treibern.
- Weitere Informationen zu bewährten Methoden bei der Speicherung finden Sie unter Best Practices für Speicherung und Sicherungen in Azure Kubernetes Service (AKS).
- Weitere Informationen zur CSI-Migration finden Sie unter Migration von strukturimmanenten zu CSI-Volumes in Kubernetes.
Azure Kubernetes Service