Condividi tramite


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 l'archiviazione Premium di Azure, supportata da unità SSD a prestazioni elevate, o l'archiviazione Standard di Azure, supportata da unità HDD o SSD standard regolari. 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.
  • Puoi usare File di Azure 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 inserisci dati in Azure Data Lake Storage, puoi montarli e usarli direttamente nel servizio Azure Kubernetes senza configurare un altro file system provvisorio.

Suggerimento

Se si vuole una soluzione completamente gestita per l'accesso a livello di blocco ai dati, è consigliabile usare Archiviazione Azure Container anziché i driver CSI. Archiviazione azure Container si integra con Kubernetes, consentendo il provisioning dinamico e automatico di volumi persistenti. Archiviazione azure Container supporta dischi di Azure, dischi temporanei e SAN elastico di Azure (anteprima) come risorsa di archiviazione di backup, offrendo flessibilità e scalabilità per le applicazioni con stato in esecuzione nei cluster Kubernetes.

Prerequisiti

  • È necessario che sia installata e configurata l'interfaccia della riga di comando di Azure 2.42 o versione successiva. 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, devi disinstallarlo prima di abilitare il driver CSI di Archiviazione di Azure.
  • Per applicare la definizione dei criteri di Criteri di Azure per il servizio Azure Kubernetes, i cluster Kubernetes devono usare il driver Container Storage Interface (CSI) StorageClass, il componente aggiuntivo Criteri di Azure deve essere abilitato nei cluster nuovi ed esistenti. Per un cluster esistente, rivedi Learn Azure Policy for Kubernetes (Informazioni su Criteri di Azure per Kubernetes) per abilitarlo.

Scenari supportati per la crittografia dei dischi

I driver di archiviazione CSI supportano gli scenari seguenti:

Abilitare i driver di archiviazione CSI in un cluster esistente

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

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

Per completare questa azione potrebbero essere necessari alcuni minuti. Una volta completata, nell'output visualizzerai lo stato dell'abilitazione del driver nel cluster. L'esempio seguente è simile alla sezione che indica i risultati quando si abilita il driver CSI di 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, includi uno dei parametri seguenti, a seconda del sistema di archiviazione:

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

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

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

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.

Eseguire la migrazione di classi di archiviazione in-tree personalizzate a CSI

Partendo da Kubernetes versione 1.26, i tipi di volume persistenti in-tree kubernetes.io/azure-disk e kubernetes.io/azure-file vengono deprecati e non saranno più supportati. I driver in-tree fanno riferimento ai driver di archiviazione che fanno parte del codice Kubernetes principale anziché ai driver CSI, che sono plug-in.

La rimozione di questi driver dopo la 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 tuo cluster per usare dischi di Azure e driver CSI di File di Azure, vedi Eseguire la migrazione da driver in-tree a CSI.

Se hai creato classi di archiviazione dei driver in-tree, queste classi di archiviazione continuano a funzionare perché la migrazione CSI è attivata dopo l'aggiornamento del cluster alla versione 1.21.x. Se vuoi usare le funzionalità CSI, devi eseguire la migrazione.

Passaggi successivi