Condividi tramite


Avvio rapido: Usare Archiviazione di Container Azure con il servizio Azure Kubernetes

Archiviazione di Azure Container è un servizio di gestione, distribuzione e orchestrazione basato sul cloud creato in modo nativo per i contenitori. Questa guida introduttiva mostra come connettere un cluster del servizio Azure Kubernetes basato su Linux, installare Azure Container Storage e creare un pool di archiviazione tramite l'interfaccia della riga di comando di Azure.

Importante

Archiviazione di Container Azure è ora disponibile a livello generale a partire dalla versione 1.1.0. La versione disponibile a livello generale è consigliata per i carichi di lavoro di produzione.

Prerequisiti

  • Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

  • Questo articolo richiede la versione più recente (2.35.0 o successiva) dell'interfaccia della riga di comando di Azure. Vedere Come installare l'interfaccia della riga di comando di Azure. Se si usa l'ambiente Bash in Azure Cloud Shell, la versione più recente è già installata. Se si prevede di eseguire i comandi in locale anziché in Azure Cloud Shell, assicurarsi di eseguirli con privilegi amministrativi. Per altre informazioni, vedere Introduzione ad Azure Cloud Shell.

  • È necessario il client della riga di comando Kubernetes, kubectl. È già installato se si usa Azure Cloud Shell oppure è possibile installarlo in locale eseguendo il comando az aks install-cli.

  • Controllare se l'area di destinazione è supportata nelle aree di Azure Container Storage.

  • Se non è già stato creato un cluster del servizio Azure Kubernetes, seguire le istruzioni per l'Installazione di un cluster del servizio Azure Kubernetes.

Introduzione

  • Prendere nota dell'ID sottoscrizione di Azure. Se si vuole usare la rete SAN di Elastic in Azure come archiviazione dati, è necessario un ruolo Proprietario di Azure Container Storage o Collaboratore di Azure Container Storage assegnato alla sottoscrizione di Azure. L'accesso a livello di proprietario consente di installare l'estensione Azure Container Storage, concede l'accesso alle risorse di archiviazione e fornisce l'autorizzazione per configurare la risorsa SAN di Elastic in Azure. L'accesso a livello di collaboratore consente di installare l'estensione e concede l'accesso alle risorse di archiviazione. Se si prevede di usare Dischi di Azure o Disco temporaneo come archiviazione dati, non sono necessarie autorizzazioni speciali per la sottoscrizione.

  • Avviare Azure Cloud Shell o, se si usa un'installazione locale, accedere ad Azure usando il comando az login.

  • Se si usa Azure Cloud Shell, potrebbe essere richiesto di montare l'archiviazione. Selezionare la sottoscrizione di Azure in cui si desidera creare l'account di archiviazione e selezionare Crea.

Installare l'estensione richiesta

Aggiungere o eseguire l'aggiornamento alla versione più recente di k8s-extension eseguendo il comando seguente.

az extension add --upgrade --name k8s-extension

Impostare il contesto della sottoscrizione

Impostare il contesto della sottoscrizione di Azure usando il comando az account set. È possibile visualizzare gli ID sottoscrizione per tutte le sottoscrizioni a cui si ha accesso eseguendo il comando az account list --output table. Ricordarsi di sostituire <subscription-id> con l'ID sottoscrizione.

az account set --subscription <subscription-id>

Stabilire la connessione al cluster

Per connettersi al cluster, usare il client da riga di comando Kubernetes kubectl. È già installato se si usa Azure Cloud Shell oppure è possibile installarlo in locale eseguendo il comando az aks install-cli.

  1. Configurare kubectl per connettersi al cluster usando il comando az aks get-credentials. Con il comando seguente:

    • Scarica le credenziali e configura la CLI di Kubernetes per utilizzarle.
    • Usare ~/.kube/config, la posizione predefinita per il file di configurazione Kubernetes. È possibile specificare un percorso diverso per il file di configurazione di Kubernetes usando l'argomento --file.
    az aks get-credentials --resource-group <resource-group> --name <cluster-name>
    
  2. Verificare la connessione al cluster usando il comando kubectl get. Questo comando restituisce un elenco dei nodi del cluster.

    kubectl get nodes
    
  3. L'esempio di output seguente mostra i nodi nel cluster. Verificare che lo stato di tutti i nodi sia Pronto:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-34832848-vmss000000   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.25.6
    

    Prendere nota del nome del pool di nodi. In questo esempio, è nodepool1.

Scegliere un'opzione di archiviazione dei dati per il pool di archiviazione

Prima di distribuire Azure Container Storage, è necessario decidere quale opzione di archiviazione back-end si desidera usare per creare il pool di archiviazione e i volumi. Queste sono le opzioni attualmente disponibili:

  • SAN di Elastic in Azure: SAN di Elastic in Azure è ideale per database per utilizzo generico, servizi di streaming e messaggistica, ambienti CI/CD e altri carichi di lavoro di livello 1/livello 2. Viene effettuato il provisioning dell'archiviazione su richiesta per volume e snapshot del volume creati. Più cluster possono accedere a una singola SAN contemporaneamente, tuttavia i volumi permanenti possono essere collegati solo da un utente alla volta.

  • Dischi di Azure: i dischi di Azure sono adatti per database come MySQL, MongoDB e PostgreSQL. Viene effettuato il provisioning dello spazio di archiviazione per ogni pool di archiviazione del contenitore di destinazione e dimensioni massime del volume.

  • Disco temporaneo: questa opzione usa unità NVMe locali o unità SSD temporanee nei nodi del cluster del servizio Azure Kubernetes. È estremamente sensibile alla latenza (bassa latenza inferiore a millisecondi), quindi è consigliabile per le applicazioni senza requisiti di durabilità dei dati o con supporto per la replica dei dati predefinita, ad esempio Cassandra. Il servizio Azure Kubernetes individua l'archiviazione temporanea disponibile nei nodi del servizio Azure Kubernetes e acquisisce le unità per la distribuzione del volume.

Nota

Per la rete SAN di Elastic in Azure e i dischi di Azure, Azure Container Storage distribuirà automaticamente l'archiviazione di backup durante l'installazione. Non è necessario creare una SAN di Elastic o un disco di Azure personalizzati. Per usare SAN di Elastic, è necessario un ruolo Proprietario di Azure Container Storage o Collaboratore Azure Container Storage nella sottoscrizione di Azure.

Utilizzo di risorse

Azure Container Storage richiede che alcune risorse del nodo eseguano componenti per il servizio. In base alla selezione del tipo di pool di archiviazione, che verrà specificato quando si installa Azure Container Storage, si tratta delle risorse che verranno utilizzate:

Tipo di pool di archiviazione Core CPU RAM
SAN di Elastic in Azure  None None
Dischi di Azure 1 1 GiB
Disco temporaneo - SSD temporaneo 1 1 GiB
Disco temporaneo - NVMe locale (livello standard) 25% dei core (il livello di prestazioni può essere aggiornato)* 1 GiB

Le risorse utilizzate sono per nodo e verranno utilizzate per ogni nodo nel pool in cui verrà installato Azure Container Storage. Se i nodi non dispongono di risorse sufficienti, l'esecuzione di Azure Container Storage non riuscirà. Kubernetes tenterà automaticamente di inizializzare questi pod non riusciti e quindi, se le risorse vengono liberate, questi pod potranno essere inizializzati di nuovo.

*In un pool di archiviazione digitare Disco temporaneo - NVMe locale con il livello di prestazioni standard (predefinito), se si usano più tipi di SKU di VM per i nodi del cluster, il 25% dei core CPU usati si applica allo SKU più piccolo usato. Ad esempio, se si usa una combinazione di tipi di macchine virtuali a 8 core e 16 core, il consumo di risorse è di 2 core. È possibile aggiornare il livello di prestazioni per usare una percentuale maggiore di core e ottenere operazioni di I/O al secondo maggiori.

Verificare che il tipo di macchina virtuale per il cluster soddisfi i criteri seguenti

Per usare Azure Container Storage, è necessario un pool di nodi di almeno tre macchine virtuali Linux. Ogni macchina virtuale deve avere almeno quattro CPU virtuali (vCPU). Azure Container Storage utilizzerà un core per l'elaborazione di I/O in ogni macchina virtuale in cui viene distribuita l'estensione.

Seguire queste linee guida quando si sceglie un tipo di macchina virtuale per i nodi del cluster. È necessario scegliere un tipo di macchina virtuale che supporti Archiviazione Premium di Azure.

  • Se si intende usare la rete SAN di Elastic in Azure o i dischi di Azure come risorse di archiviazione di backup, scegliere un tipo di macchina virtuale per utilizzo generico, ad esempio standard_d4s_v5.
  • Se si intende usare un disco temporaneo con NVMe locale, scegliere uno SKU di macchina virtuale che supporti dischi dati NVMe locali, ad esempio SKU di MACCHINE virtuali ottimizzate per l'archiviazione o SKU di MACCHINE virtuali con accelerazione GPU.
  • Se si intende usare un disco temporaneo con un'unità SSD temporanea, scegliere una macchina virtuale con un disco SSD temporaneo, ad esempio Ev3 e Esv3.

Installare Azure Container Storage nel cluster del servizio Azure Kubernetes

Il comando di installazione è diverso a seconda che nel cluster del servizio Azure Kubernetes sia già in esecuzione un'istanza di anteprima di Archiviazione di Container Azure o che si stia installando Archiviazione di Container Azure nel cluster per la prima volta.

Aggiornare un'installazione di anteprima a quella disponibile a livello generale

Se nel cluster è già in esecuzione un'istanza di anteprima di Archiviazione di Container Azure, è consigliabile eseguire l'aggiornamento all'ultima versione disponibile a livello generale eseguendo il comando seguente. Se si installa Archiviazione di Container Azure per la prima volta nel cluster, passare invece a Installare Archiviazione di Container Azure e creare un pool di archiviazione. È anche possibile Installare Archiviazione di Container Azure in pool di nodi specifici.

az k8s-extension update --cluster-type managedClusters --cluster-name <cluster-name> --resource-group <resource-group> --name azurecontainerstorage --version 1.1.0 --auto-upgrade false --release-train stable

Ricordarsi di sostituire <cluster-name> e <resource-group> con i propri valori.

Installare Archiviazione di Container Azure e creare un pool di archiviazione

Prima di eseguire l'installazione, assicurarsi che il cluster del servizio Azure Kubernetes soddisfi i requisiti della macchina virtuale.

Eseguire il comando seguente per installare Archiviazione di Container Azure nel cluster e creare un pool di archiviazione. Sostituire <cluster-name> e <resource-group> con valori personalizzati. Sostituire <storage-pool-type> con azureDisk, ephemeralDisk o elasticSan. Se si seleziona ephemeralDisk, è anche possibile specificare --storage-pool-option e i valori possono essere NVMe o Temp.

L'esecuzione di questo comando consentirà abilitare Azure Container Storage nel pool di nodi di sistema, che per impostazione predefinita è denominato nodepool1*. Per abilitarlo in altri pool di nodi, vedere Installare Azure Container Storage in pool di nodi specifici. Per specificare parametri aggiuntivi, vedere Parametri del pool di archiviazione di Archiviazione di Container Azure.

*Se sono presenti pool di nodi esistenti con l'etichetta acstor.azure.com/io-engine:acstor, Azure Container Storage verrà installato per impostazione predefinita. In caso contrario, viene installato nel pool di nodi di sistema.

Importante

Se è stato creato il cluster del servizio Azure Kubernetes usando il portale di Azure: Il cluster avrà probabilmente un pool di nodi utente e un pool di nodi di sistema/agente. Tuttavia, se il cluster è costituito solo da un pool di nodi di sistema, ad esempio con i cluster di test/sviluppo creati con il portale di Azure, è necessario prima di tutto aggiungere un nuovo pool di nodi utente e quindi etichettarlo. Ciò è dovuto al fatto che quando si crea un cluster del servizio Azure Kubernetes usando il portale di Azure, viene aggiunto un taint CriticalAddOnsOnly al pool di nodi agente/di sistema, che blocca l'installazione di Azure Container Storage nel pool di nodi di sistema. Questo taint non viene aggiunto quando viene creato un cluster del servizio Azure Kubernetes tramite l'interfaccia della riga di comando di Azure.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

La distribuzione richiederà 10-15 minuti. Al termine, sarà installato un cluster del servizio Azure Kubernetes con Azure Container Storage, i componenti per il tipo di pool di archiviazione scelto abilitato e un pool di archiviazione predefinito. Per abilitare altri tipi di pool di archiviazione per creare pool di archiviazione aggiuntivi, vedere Abilitare tipi di pool di archiviazione aggiuntivi.

Importante

Se è stato specificato SAN di Elastic in Azure come risorsa di archiviazione per il pool di archiviazione e non si dispone dei ruoli di Proprietario di Archiviazione di Container Azure o Collaboratore di Archiviazione di Container Azure assegnati alla sottoscrizione di Azure, l'installazione di Archiviazione di Container Azure non riuscirà e non verrà creato un pool di archiviazione. Se si tenta di abilitare SAN di Elastic in Azure come tipo di pool di archiviazione aggiuntivo senza uno di questi ruoli, l'installazione e i pool di archiviazione precedenti rimarranno invariati e non verrà creato un pool di archiviazione SAN di Elastic.

Installare Azure Container Storage in pool di nodi specifici

Se si desidera installare Azure Container Storage in pool di nodi specifici, seguire queste istruzioni. I pool di nodi devono contenere almeno tre macchine virtuali Linux.

  1. Eseguire il comando seguente per visualizzare l'elenco dei pool di nodi disponibili. Sostituire <resource-group> e <cluster-name> con valori personalizzati.

    az aks nodepool list --resource-group <resource-group> --cluster-name <cluster-name>
    
  2. Eseguire il comando seguente per installare Azure Container Storage in pool di nodi specifici. Sostituire <cluster-name> e <resource-group> con valori personalizzati. Sostituire <storage-pool-type> con azureDisk, ephemeralDisk o elasticSan. Se si seleziona ephemeralDisk, è anche possibile specificare --storage-pool-option e i valori possono essere NVMe o Temp.

    az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --azure-container-storage-nodepools <comma separated values of nodepool names>
    

Abilitare tipi di pool di archiviazione aggiuntivi

Se si desidera abilitare un tipo di pool di archiviazione non abilitato originariamente durante l'installazione di Azure Container Storage, eseguire il comando seguente. Sostituire <cluster-name> e <resource-group> con valori personalizzati. Per <storage-pool-type>, specificare azureDisk, ephemeralDisk o elasticSan.

Per specificare parametri aggiuntivi del pool di archiviazione con questo comando, vedere questa tabella.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

Se il nuovo tipo di pool di archiviazione abilitato richiede più risorse rispetto al tipo già abilitato, il consumo di risorse cambierà alla quantità massima.

Suggerimento

Se è stato aggiunto un nuovo pool di nodi al cluster e si desidera eseguire Azure Container Storage in tale pool di nodi, è possibile specificare il pool di nodi con --azure-container-storage-nodepools <nodepool-name> quando si esegue il comando az aks update.

Mostrare i pool di archiviazione disponibili

Per ottenere l'elenco dei pool di archiviazione disponibili, eseguire il comando seguente:

kubectl get sp -n acstor

Per controllare lo stato di un pool di archiviazione, eseguire il comando seguente:

kubectl describe sp <storage-pool-name> -n acstor

Se Message non indica StoragePool is ready, il pool di archiviazione sta ancora creando o si è verificato un problema. Vedere Risolvere i problemi di Azure Container Storage.

Disabilitare i tipi di pool di archiviazione

Se non si usa più un tipo di pool di archiviazione specifico e si desidera disabilitarlo per liberare le risorse nel pool di nodi, eseguire il comando seguente. Sostituire <cluster-name> e <resource-group> con valori personalizzati. Per <storage-pool-type>, specificare azureDisk, ephemeralDisk o elasticSan.

az aks update -n <cluster-name> -g <resource-group> --disable-azure-container-storage <storage-pool-type>

Nota

Se si dispone di un pool di archiviazione esistente del tipo che si sta tentando di disabilitare, il tipo di pool di archiviazione non verrà disabilitato.

Passaggio successivo

Per creare volumi, selezionare il link per il tipo di archiviazione di backup selezionato.