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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Un ambiente terminale con gli strumenti dell'interfaccia della riga di comando di Azure installati. Vedere Introduzione all'interfaccia della riga di comando di Azure
- kubectl, lo strumento di gestione Kubernetes, viene installato nell'ambiente del terminale. Vedere Avvio rapido: Distribuire un cluster servizio Azure Kubernetes (Servizio Azure Kubernetes) con l'interfaccia della riga di comando di Azure
- Creare una distribuzione lustre gestita di Azure. Vedere la documentazione di Azure Managed Lustre File System
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.
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.
Panoramica della configurazione
Per abilitare il driver CSI gestito di Azure per Kubernetes, seguire questa procedura:
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:
Aprire una sessione del terminale con accesso agli strumenti dell'interfaccia della riga di comando di Azure e accedere all'account Azure.
az login
Accedere al portale di Azure.
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.
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>
Installare kubectl se non è presente nell'ambiente.
az aks install-cli
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:
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.
Nel file storageclass_existing_lustre.yaml aggiornare il nome interno del cluster Lustre e l'indirizzo IP MSG.
Entrambe le impostazioni vengono visualizzate nella portale di Azure, nella pagina Connessione client per il file system di Azure Lustre.
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 generelustrefs
. 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.Sostituire
EXISTING_LUSTRE_IP_ADDRESS
con l'indirizzo IP MSG.
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:
Aggiungere il codice seguente al pod echo:
while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
Per visualizzare i timestamp nella console durante le scritture, eseguire il comando seguente
kubectl
:`kubectl logs -f lustre-echo-date`
Passaggi successivi
- Informazioni su come esportare file dal file system con un processo di archiviazione.