Driver di Container Storage Interface (CSI) nel servizio Azure Kubernetes (AKS)

CSI (Container Storage Interface) è uno standard per l'esposizione di sistemi di archiviazione file e a blocchi arbitrari per carichi di lavoro in contenitori in Kubernetes. Adottando e usando CSI, il servizio Azure Kubernetes può scrivere, distribuire e eseguire l'iterazione dei plug-in per esporre sistemi di archiviazione nuovi o migliorare i sistemi di archiviazione esistenti in Kubernetes senza dover toccare il codice Kubernetes principale e attendere i cicli di rilascio.

Il supporto del driver di archiviazione CSI nel servizio Azure Kubernetes consente di usare in modo nativo:

  • È possibile usare Dischi di Azure per creare una risorsa DataDisk Kubernetes. I dischi possono usare Archiviazione Premium di Azure, supportati da unità SSD a prestazioni elevate o da Archiviazione Standard di Azure, supportati da hdd normali o SSD Standard. Per la maggior parte dei carichi di lavoro di produzione e sviluppo, usare l’Archiviazione Premium. I dischi di Azure vengono montati come ReadWriteOnce e sono disponibili solo per un nodo nel servizio Azure Kubernetes. Per i volumi di archiviazione accessibili contemporaneamente da più nodi, usare File di Azure.
  • File di Azure può essere usato per montare una condivisione SMB 3.0/3.1 supportata da un account di archiviazione di Azure nei pod. Con File di Azure è possibile condividere dati tra più nodi e pod. File di Azure può usare l'archiviazione Standard di Azure con tradizionali unità HDD o l'archiviazione Premium di Azure con unità SSD ad alte prestazioni.
  • L'archiviazione BLOB di Azure può essere usata per montare l'archiviazione BLOB (o l'archiviazione di oggetti) come file system in un contenitore o in un pod. L'uso dell'archiviazione BLOB consente al cluster di supportare applicazioni che funzionano con set di dati non strutturati di grandi dimensioni, ad esempio dati di file di log, immagini o documenti, HPC e altri. Inoltre, se si inseriscono dati in Azure Data Lake Storage, è possibile montarli e usarli direttamente nel servizio Azure Kubernetes senza configurare un altro file system provvisorio.

Importante

A partire da Kubernetes versione 1.26, i tipi di volume persistente in albero kubernetes.io/azure-disk e kubernetes.io/azure-file sono deprecati e non saranno più supportati. La rimozione di questi driver in seguito alla deprecazione non è pianificata, ma è consigliabile eseguire la migrazione ai driver CSI corrispondenti disk.csi.azure.com e file.csi.azure.com. Per esaminare le opzioni di migrazione per le classi di archiviazione e aggiornare il cluster per usare Dischi di Azure e File di Azure driver CSI, vedere Eseguire la migrazione da driver in albero a CSI.

I driver nell'albero fanno riferimento ai driver di archiviazione che fanno parte del codice Kubernetes principale anziché ai driver CSI, che sono plug-in.

Nota

È consigliabile eliminare l'oggetto PersistentVolumeClaim corrispondente anziché l'oggetto PersistentVolume durante l'eliminazione di un volume CSI. Il provisioner esterno nel driver CSI reagisce all'eliminazione di PersistentVolumeClaim e, in base ai criteri di recupero, invia la chiamata DeleteVolume ai comandi del driver del volume CSI per eliminare il volume. L'oggetto PersistentVolume viene quindi eliminato.

Prerequisiti

  • È necessaria l'interfaccia della riga di comando di Azure versione 2.42 o successiva installata e configurata. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
  • Se il driver di archiviazione CSI open source è installato nel cluster, disinstallarlo prima di abilitare il driver CSI di Archiviazione di Azure.
  • Per applicare il Criteri di Azure per i cluster Kubernetes di definizionedei criteri del servizio Azure Kubernetes, è necessario usare il driver Archiviazione Class (Container Archiviazione Interface(CSI), il componente aggiuntivo Criteri di Azure deve essere abilitato nei cluster nuovi ed esistenti. Per un cluster esistente, vedere Learn Criteri di Azure for Kubernetes per abilitarlo.

Scenari supportati per la crittografia dei dischi

I driver di archiviazione CSI supportano gli scenari seguenti:

  • Dischi gestiti crittografati con chiavi gestite dal cliente usando Azure Key Vault archiviati in un tenant Microsoft Entra diverso.
  • Crittografare i dischi Archiviazione di Azure che ospitano il sistema operativo del servizio Azure Kubernetes e i dati dell'applicazione con chiavi gestite dal cliente.

Abilitare i driver di archiviazione CSI in un cluster esistente

Per abilitare i driver di archiviazione CSI in un nuovo cluster, includere uno dei parametri seguenti a seconda del sistema di archiviazione:

  • --enable-disk-driver consente di abilitare il driver CSI di Dischi di Azure.
  • --enable-file-driverconsente di abilitare il driver CSI File di Azure.
  • --enable-blob-driver consente di abilitare il driver CSI di Archiviazione BLOB di Azure.
  • --enable-snapshot-controller consente di abilitare il controller snapshot.
az aks update -n myAKSCluster -g myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller

Il completamento di questa azione può richiedere alcuni minuti. Al termine, nell'output verrà visualizzato lo stato dell'abilitazione del driver nel cluster. L'esempio seguente è simile alla sezione che indica i risultati quando si abilita il driver CSI dell'archiviazione BLOB:

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

Disabilitare i driver di archiviazione CSI in un cluster nuovo o esistente

Per disabilitare i driver di archiviazione CSI in un nuovo cluster, includere uno dei parametri seguenti a seconda del sistema di archiviazione:

  • --disable-disk-driver consente di disabilitare il driver CSI di Dischi di Azure.
  • --disable-file-driverconsente di disabilitare il driver CSI File di Azure.
  • --disable-blob-driver consente di disabilitare il driver CSI di Archiviazione BLOB di Azure.
  • --disable-snapshot-controller consente di disabilitare il controller snapshot.
az aks create -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller 

Per disabilitare i driver di archiviazione CSI in un cluster esistente, usare uno dei parametri elencati in precedenza a seconda del sistema di archiviazione:

az aks update -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller 

Eseguire la migrazione di classi di archiviazione in albero personalizzate a CSI

Se sono state create classi di archiviazione dei driver ad albero, tali classi di archiviazione continuano a funzionare perché la migrazione CSI è attivata dopo l'aggiornamento del cluster alla versione 1.21.x. Se si vogliono usare le funzionalità CSI, è necessario eseguire la migrazione.

Per esaminare le opzioni di migrazione per le classi di archiviazione e aggiornare il cluster per usare Dischi di Azure e File di Azure driver CSI, vedere Eseguire la migrazione da driver in albero a CSI.

Passaggi successivi