Usare il driver CSI lustre gestito di Azure con servizio Azure Kubernetes
Questo articolo illustra come pianificare, installare e usare Lustre gestito di Azure in servizio Azure Kubernetes con driver CSI di Azure Lustre per Kubernetes. Questo driver si basa sulla specifica CSI (Container Support Interface).
È possibile utilizzare il driver CSI Azure Lustre per accedere all'archiviazione gestita Azure Managed Lustre come volumi di archiviazione persistenti dai contenitori Kubernetes distribuiti nel servizio Azure Kubernetes (AKS).
Versioni di Kubernetes compatibili
Il driver CSI di Lustre di Azure per Kubernetes è compatibile con AKS . Altre installazioni di Kubernetes non sono attualmente supportate.
Sono supportate le versioni di Kubernetes 1.21 e successive del servizio Azure Kubernetes. Questo supporto include tutte le versioni attualmente disponibili quando si crea un nuovo cluster AKS.
Importante
Il driver CSI di Azure Lustre per Kubernetes attualmente funziona solo con lo SKU del sistema operativo Ubuntu Linux per i pool di nodi di Azure Kubernetes Service.
Versioni lustre compatibili
Il driver CSI di Azure Lustre per Kubernetes è compatibile con Azure Managed Lustre. Altre installazioni lustre non sono attualmente supportate.
I driver CSI di Azure Lustre per Kubernetes nelle versioni 0.1.10 e successive sono supportati con la versione corrente del servizio Azure Managed Lustre.
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. Vedi Introduzione ad Azure CLI.
- kubectl, lo strumento di gestione Kubernetes installato nel tuo ambiente terminale. Consulta Avvio rapido: Distribuire un cluster di Azure Kubernetes Service (AKS) usando l'Azure CLI.
- Una distribuzione Azure gestita Lustre. Consultare la documentazione Azure Managed Lustre.
Pianifica la distribuzione AKS
Quando si distribuisce Azure Kubernetes Service, diverse opzioni influiscono sull'operazione tra AKS e Azure Lustre gestito.
Determinare il tipo di rete da usare con il servizio Azure Kubernetes
Due tipi di rete sono 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 di Azure Lustre per Kubernetes, ma hanno requisiti diversi che è necessario comprendere quando imposti la rete virtuale e AKS. Per ulteriori informazioni su come determinare la selezione corretta, vedere concetti di rete per le applicazioni nel servizio Azure Kubernetes Service (AKS).
Determinare l'architettura di rete per l'interconnettività di AKS e di Azure Managed Lustre.
Lustre gestito di Azure opera all'interno di una rete virtuale privata. L'istanza AKS deve avere connettività di rete alla rete virtuale Azure Managed Lustre. Esistono due modi comuni per configurare la rete tra Azure Managed Lustre e il servizio Azure Kubernetes (AKS).
- Installare AKS nella propria rete virtuale e creare un peering di rete virtuale con la rete virtuale gestita di Azure Lustre.
- Utilizzare l'opzione Bring your own Azure virtual network in AKS per installare AKS in una nuova subnet sulla rete virtuale Azure Managed Lustre.
Nota
Non è consigliabile installare AKS nella stessa subnet di Azure Managed Lustre.
Peering del servizio Azure Kubernetes e reti virtuali lustre gestite di Azure
L'opzione per eseguire il peering di due reti virtuali offre il vantaggio di separare la gestione delle reti in ruoli con privilegi diversi. Il peering può anche offrire una maggiore flessibilità, perché è possibile implementarla tra sottoscrizioni o aree di Azure. Il peering di rete virtuale richiede il coordinamento tra le due reti per evitare di scegliere spazi di rete IP in conflitto.
Installazione di AKS in una subnet nella rete virtuale Azure Managed Lustre
L'opzione per installare il cluster del servizio Azure Kubernetes nella rete virtuale Lustre gestita di Azure con la funzionalità Bring Your Own Azure Virtual Network nel servizio Azure Kubernetes può essere vantaggiosa negli scenari in cui la rete viene gestita singolarmente. ** È necessario creare una subnet aggiuntiva, dimensionata per soddisfare i requisiti di rete di Azure Kubernetes Service, nella rete virtuale Lustre gestita di Azure.
Quando si esegue il provisioning di AKS sulla rete virtuale Azure Managed Lustre, non esiste alcuna separazione dei privilegi per la gestione della rete. L'entità servizio di AKS ha bisogno di privilegi sulla rete virtuale Azure Managed Lustre.
Configurare il driver
Per abilitare il driver CSI di Azure Lustre per Kubernetes, seguire questa procedura:
Creare e configurare un volume permanente.
Verificare l'installazione utilizzando facoltativamente un pod echo per confermare che il driver funzioni.
Le sezioni seguenti descrivono in modo più dettagliato ogni attività.
Creare un cluster di file system Azure Managed Lustre
Se il cluster del file system lustre gestito di Azure non è già stato creato, creare ora il cluster. Per istruzioni, vedere Creare un file system gestito Lustre di Azure utilizzando il portale di Azure. Attualmente, il driver può essere usato solo con un file system esistente Azure Managed Lustre.
Creare un cluster del servizio Azure Kubernetes Service
Se il cluster del servizio Azure Kubernetes non è già stato creato, creare una distribuzione del cluster. Consultare Distribuire un cluster del Servizio Azure Kubernetes (AKS) usando il portale di Azure.
Creare un peering di rete virtuale
Nota
Ignora questo passaggio di peering di rete se hai installato AKS in una subnet nella rete virtuale gestita Azure Lustre.
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. Per trovare il nome di questo gruppo di risorse, passare al cluster AKS nel portale di Azure, andare a Proprietàe trovare 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 >.
Per eseguire il peering della rete virtuale AKS con la rete virtuale Azure Managed Lustre, consultare Peering di rete virtuale.
Suggerimento
A causa della denominazione dei gruppi di risorse e delle reti virtuali MC_, i nomi delle reti possono essere simili o uguali in più distribuzioni del servizio Azure Kubernetes. Quando si configura il peering, prestare attenzione a scegliere le reti AKS che si intende utilizzare.
Connettersi al cluster servizio Azure Kubernetes
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. Nel riquadro Panoramica
selezionare il pulsante Connetti e quindi copiare il comando perScaricare le credenziali del cluster .Nella sessione del terminale incollare il comando per scaricare le credenziali. Il comando è simile al seguente:
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 AKS dove hai appena installato le credenziali e che puoi connetterti ad esso.
kubectl config current-context kubectl get deployments --all-namespaces=true
Installare il driver
Per installare il driver CSI di Azure Lustre per Kubernetes, eseguire il comando seguente:
curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash
Per ottenere comandi di esempio per un'installazione locale, vedere Installare il driver CSI di Azure Lustre in un cluster Kubernetes.
Creare e configurare un volume permanente
Per creare un volume persistente per un file system Lustre esistente gestito da Azure:
Copiare i file di configurazione seguenti dalla cartella /docs/examples/ nel repository azurelustre-csi-driver . Se il repository è stato clonato quando si installato il driver, 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 del Servizio di Gestione Lustre (MGS).
Entrambe le impostazioni vengono visualizzate nel portale di Azure, nel riquadro connessione client per il file system Azure Managed Lustre.
Apportare questi aggiornamenti:
Sostituire
EXISTING_LUSTRE_FS_NAME
con il nome interno assegnato dal sistema del cluster Lustre nel file system lustre gestito di Azure. Il nome interno è in generelustrefs
. Il nome interno non è il nome assegnato al file system al momento della creazione.Il comando suggerito
mount
include il nome evidenziato nella stringa di indirizzo seguente.Sostituire
EXISTING_LUSTRE_IP_ADDRESS
con l'indirizzo IP MGS.
Per creare la classe di archiviazione e l'attestazione del volume permanente, eseguire il comando seguente
kubectl
:kubectl create -f storageclass_existing_lustre.yaml kubectl create -f pvc_storageclass.yaml
Controllare l'installazione
Se vuoi verificare la tua installazione, puoi usare facoltativamente un echo pod per confermare che il driver sia funzionante.
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
kubectl
seguente:`kubectl logs -f lustre-echo-date`
Contenuto correlato
- Creare un processo di esportazione per esportare i dati da Lustre gestito di Azure