Condividi tramite


Usare il driver CSI gestito di Azure con servizio Azure Kubernetes

Questo articolo descrive come pianificare, installare e usare Lustre gestito di Azure in servizio Azure Kubernetes (AKS) con il driver di interfaccia dell'interfaccia del contenitore Azure Managed Lustre Kubernetes (driver CSI gestito di Azure).

Informazioni sul driver CSI gestito di Azure per il servizio Azure Kubernetes

Il driver Azure Managed Lustre Container Support Interface (CSI) per il servizio Azure Kubernetes consente di accedere all'archiviazione gestita di Azure come volumi di archiviazione persistenti dai contenitori Kubernetes distribuiti in servizio Azure Kubernetes (AKS).

Versioni di Kubernetes compatibili

Il driver CSI gestito di Azure per il servizio Azure Kubernetes è compatibile con servizio Azure Kubernetes (servizio Azure Kubernetes). Altre installazioni di Kubernetes non sono attualmente supportate.

Sono supportate le versioni di Kubernetes del servizio Azure Kubernetes 1.21 e versioni successive. Sono incluse tutte le versioni attualmente disponibili durante la creazione di un nuovo cluster del servizio Azure Kubernetes.

Importante

Il driver CSI gestito di Azure attualmente funziona solo con lo SKU del sistema operativo Linux Ubuntu per i pool di nodi del servizio Azure Kubernetes.

Versioni di Lustre compatibili

Il driver CSI gestito di Azure per il servizio Azure Kubernetes è compatibile con Lustre gestito di Azure. Altre installazioni lustre non sono attualmente supportate.

Il driver CSI gestito di Azure 0.1.10 e versioni successive sono supportate con la versione corrente del servizio Lustre gestito di Azure.

Prerequisiti

Pianificare la distribuzione del servizio Azure Kubernetes

Esistono diverse opzioni durante la distribuzione di servizio Azure Kubernetes che influiscono sull'operazione tra servizio Azure Kubernetes e Lustre gestito di Azure.

Determinare il tipo di rete da usare con il servizio Azure Kubernetes

Esistono due tipi di rete compatibili con lo SKU del sistema operativo Ubuntu Linux, kubenet e il driver CNI (Azure Container Network Interface). Entrambe le opzioni funzionano con il driver CSI gestito di Azure per il servizio Azure Kubernetes, ma hanno requisiti diversi che devono essere compresi durante la configurazione della rete virtuale e del servizio Azure Kubernetes. Per altre informazioni sulla determinazione della selezione corretta, vedere Concetti di rete per le applicazioni in servizio Azure Kubernetes (Servizio Azure Kubernetes).

Determinare l'architettura di rete per l'interconnessione del servizio Azure Kubernetes e Lustre gestita di Azure

Lustre gestito di Azure opera all'interno di una rete virtuale privata, Kubernetes deve disporre della connettività di rete alla rete virtuale Lustre gestita di Azure. Esistono due modi comuni per configurare la rete tra Il lustre gestito di Azure e il servizio Azure Kubernetes.

  • Installare il servizio Azure Kubernetes nel proprio Rete virtuale e creare un peering di rete virtuale con il Rete virtuale di Lustre gestito di Azure.
  • Usare l'opzione Bring your Own Networking nel servizio Azure Kubernetes per installare il servizio Azure Kubernetes in una nuova subnet nel Rete virtuale di Azure Managed Lustre.

Nota

L'installazione del servizio Azure Kubernetes nella stessa subnet di Azure Managed Lustre non è consigliata.

Peering del servizio Azure Kubernetes e reti virtuali lustre gestite di Azure

L'opzione per eseguire il peering di due reti virtuali diverse offre il vantaggio di separare la gestione delle varie reti a ruoli con privilegi diversi. Il peering può anche offrire una maggiore flessibilità perché può essere effettuata tra sottoscrizioni o aree di Azure. Rete virtuale peering richiederà il coordinamento tra le due reti per evitare di scegliere spazi di rete IP in conflitto.

Diagramma che mostra due reti virtuali, una per Il lustre gestito di Azure e una per il servizio Azure Kubernetes, con una freccia di peering della rete virtuale che li connette.

Installazione del servizio Azure Kubernetes in una subnet nella rete virtuale Lustre gestita di Azure

L'opzione per installare il cluster del servizio Azure Kubernetes nella rete virtuale Lustre gestita di Azure con la funzionalità Bring Your Own Network in Servizio Azure Kubernetes può essere vantaggiosa in cui si vogliono scenari in cui la rete viene gestita singolarmente. È necessario creare una subnet aggiuntiva per soddisfare i requisiti di rete del servizio Azure Kubernetes nella rete virtuale Lustre gestita di Azure.

Non esiste alcuna separazione dei privilegi per la gestione della rete durante il provisioning del servizio Azure Managed Lustre Network e l'entità servizio Servizio Azure Kubernetes richiederà privilegi nella rete virtuale Lustre gestita di Azure.

Diagramma che mostra la rete virtuale Lustre gestita di Azure con due subnet, una per il file system Lustre e una per il servizio Azure Kubernetes.

Panoramica della configurazione

Per abilitare il driver CSI gestito di Azure per Kubernetes, seguire questa procedura:

  1. Creare un file system lustre gestito di Azure

  2. Creare un cluster Kubernetes del servizio Azure Kubernetes

  3. Creare il peering di reti virtuali

  4. Installare il driver CSI gestito di Azure per Kubernetes.

  5. Creare e configurare un volume persistente.

  6. Controllare l'installazione usando facoltativamente un pod echo per verificare che il driver funzioni.

Le sezioni seguenti descrivono ogni attività in modo più dettagliato.

Creare un file system lustre gestito di Azure

Se il cluster del file system gestito di Azure gestito non è già stato creato, creare ora il cluster. Per istruzioni, vedere Creare un file system lustre gestito di Azure nel portale di Azure. Attualmente, il driver può essere usato solo con un file system gestito di Azure esistente.

Creare un cluster del servizio Azure Kubernetes

Se il cluster del servizio Azure Kubernetes non è già stato creato, creare una distribuzione del cluster. Vedere Distribuire un cluster servizio Azure Kubernetes (servizio Azure Kubernetes).

Creare il peering di reti virtuali

Nota

Ignorare questo passaggio di peering di rete se è stato installato il servizio Azure Kubernetes in una subnet nella rete virtuale Lustre gestita di Azure.

La rete virtuale del servizio Azure Kubernetes viene creata in un gruppo di risorse separato dal gruppo di risorse del cluster del servizio Azure Kubernetes. È possibile trovare il nome di questo gruppo di risorse passando al cluster del servizio Azure Kubernetes nel portale di Azure scegliendo il pannello Proprietà e trovando il gruppo di risorse Infrastruttura . Questo gruppo di risorse contiene la rete virtuale che deve essere associata alla rete virtuale Lustre gestita di Azure. Corrisponde al modello MC_<aks-rg-name_<aks-cluster-name>>_<region>.

Consultare Rete virtuale peering per eseguire il peering della rete virtuale del servizio Azure Kubernetes con la rete virtuale Gestione lustre di Azure.

Suggerimento

A causa della denominazione dei gruppi di risorse e delle reti virtuali MC_, i nomi delle reti possono essere simili o uguali tra più distribuzioni del servizio Azure Kubernetes. Quando si configura il peering prestare attenzione alla scelta delle reti del servizio Azure Kubernetes che si intende scegliere.

Connettersi al cluster del servizio Azure Kubernetes

Connettersi al cluster servizio Azure Kubernetes eseguendo questa procedura:

  1. Aprire una sessione del terminale con accesso agli strumenti dell'interfaccia della riga di comando di Azure e accedere all'account Azure.

    az login
    
  2. Accedere al portale di Azure.

  3. Trovare il cluster del servizio Azure Kubernetes. Selezionare il pannello Panoramica , quindi selezionare il pulsante Connetti e copiare il comando per Scaricare le credenziali del cluster.

  4. Nella sessione del terminale incollare il comando per scaricare le credenziali. Sarà un comando simile a:

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. Installare kubectl se non è presente nell'ambiente.

    az aks install-cli
    
  6. Verificare che il contesto corrente sia il cluster del servizio Azure Kubernetes appena installato e che sia possibile connettersi:

    kubectl config current-context
    kubectl get deployments --all-namespaces=true
    

Installare il driver CSI

Per installare il driver CSI, eseguire il comando seguente:

curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash

Per gli esempi di comandi di installazione locale, vedere Installare il driver CSI di Azure Lustre in un cluster Kubernetes.

Creare e configurare un volume persistente

Per creare un volume permanente per un file system lustre gestito di Azure esistente, seguire questa procedura:

  1. Copiare i file di configurazione seguenti dalla cartella /docs/examples/ nel repository azurelustre-csi-driver . Se è stato clonato il repository quando è stato installato il driver CSI, sono già disponibili copie locali.

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    Se non si vuole clonare l'intero repository, è possibile scaricare ogni file singolarmente. Aprire ognuno dei collegamenti seguenti, copiare il contenuto del file e quindi incollare il contenuto in un file locale con lo stesso nome file.

  2. Nel file storageclass_existing_lustre.yaml aggiornare il nome interno del cluster Lustre e l'indirizzo IP MSG.

    Screenshot del file storageclass_existing_lustre.yaml con valori da sostituire evidenziato.

    Entrambe le impostazioni vengono visualizzate nella portale di Azure, nella pagina Connessione client per il file system di Azure Lustre.

    Screenshot della pagina connessione client portale di Azure. L'indirizzo IP MGS e il nome

    Apportare questi aggiornamenti:

    • Sostituire EXISTING_LUSTRE_FS_NAME con il nome interno assegnato dal sistema del cluster Lustre nel file system gestito di Azure. Il nome interno è in genere lustrefs. Il nome interno non è il nome assegnato al file system quando è stato creato.

      Il comando suggerito mount include il nome evidenziato nella stringa di indirizzo seguente.

      Screenshot di una stringa di indirizzo di esempio nella pagina Connessione client. Il nome interno del cluster Lustre è evidenziato.

    • Sostituire EXISTING_LUSTRE_IP_ADDRESS con l'indirizzo IP MSG.

  3. Per creare la classe di archiviazione e l'attestazione del volume persistente, eseguire il comando seguente kubectl :

    kubectl create -f storageclass_existing_lustre.yaml
    kubectl create -f pvc_storageclass.yaml
    

Verificare l'installazione

Se si vuole controllare l'installazione, è possibile usare facoltativamente un pod echo per verificare che il driver funzioni.

Per visualizzare i timestamp nella console durante le scritture, eseguire i comandi seguenti:

  1. Aggiungere il codice seguente al pod echo:

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. Per visualizzare i timestamp nella console durante le scritture, eseguire il comando seguente kubectl :

    `kubectl logs -f lustre-echo-date`
    

Passaggi successivi