Esercitazione: Installare Archiviazione di Container Azure per l'uso 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. In questa esercitazione si creerà un cluster del Servizio Azure Kubernetes (AKS) e si installerà Archiviazione di Container Azure nel cluster. Se è già stato distribuito un cluster del servizio Azure Kubernetes, è consigliabile installare Azure Container Storage usando questo Avvio rapido anziché seguire i passaggi manuali di questa esercitazione.
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.
- Creare un gruppo di risorse
- Scegliere un'opzione di archiviazione dati e un tipo di macchina virtuale
- Creare un cluster del servizio Azure Kubernetes
- Stabilire la connessione al cluster
- Etichettare il pool di nodi
- Assegnare il ruolo Operatore di Azure Container Storage all'identità gestita del servizio Azure Kubernetes
- Installare Azure Container Storage
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 comandoaz aks install-cli
.Controllare se l'area di destinazione è supportata nelle aree di Azure Container Storage.
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 all'interfaccia della riga di comando di 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>
Creare un gruppo di risorse
Un gruppo di risorse di Azure è un gruppo logico che contiene le risorse di Azure che si vuole gestire come gruppo. Quando si crea un gruppo di risorse, viene richiesto di specificare una posizione. Questa posizione è:
- Posizione di archiviazione dei metadati del gruppo di risorse.
- È dove vengono eseguite le risorse in Azure se non si specifica un'area diversa durante la creazione.
Creare un gruppo di risorse usando il comando az group create
. Sostituire <resource-group-name>
con il nome del gruppo di risorse che si vuole creare e sostituire <location>
con un'area di Azure, ad esempio eastus, westus2, westus3 o westeurope.
az group create --name <resource-group-name> --location <location>
Se il gruppo di risorse è stato creato correttamente, verrà visualizzato un output simile al seguente:
{
"id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
"location": "eastus",
"managedBy": null,
"name": "myContainerStorageRG",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Scegliere un'opzione di archiviazione dati e un tipo di macchina virtuale
Prima di creare il cluster, è necessario comprendere quale opzione di archiviazione back-end scegliere per creare il pool di archiviazione. Questo perché i diversi servizi di archiviazione funzionano meglio con diversi tipi di macchina virtuale come nodi del cluster e si distribuirà il cluster prima di creare il pool di archiviazione.
Opzioni di archiviazione dei dati
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 le unità NVMe locali o SSD temporanee nei nodi del servizio Azure Kubernetes ed è 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.
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 NVMe locali, ad esempio SKU di VM ottimizzati 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.
Creare un nuovo cluster del Servizio Azure Kubernetes e installare Archiviazione di Container Azure
Se è già stato distribuito un cluster del Servizio Azure Kubernetes, seguire le istruzioni di installazione in questo avvio rapido.
Eseguire il comando seguente per creare un nuovo cluster del Servizio Azure Kubernetes, installare Archiviazione di Container Azure e creare un pool di archiviazione. Sostituire <cluster-name>
e <resource-group>
con i propri valori e specificare il tipo di VM da usare. Sostituire <storage-pool-type>
con azureDisk
, ephemeralDisk
o elasticSan
. Se si seleziona ephemeralDisk
, è anche necessario specificare --storage-pool-option
e i valori possono essere NVMe
o Temp
.
L'esecuzione di questo comando abiliterà Archiviazione di Container Azure nel pool di nodi di sistema* con tre VM Linux. Se si specifica NVMe locale per il tipo di pool di archiviazione, assicurarsi di impostare il numero di nodi su 4 o versione successiva oppure l'esecuzione del comando non riuscirà.
Per impostazione predefinita, il pool di nodi di sistema è denominato nodepool1
. Per abilitare Archiviazione di Container Azure in altri pool di nodi, vedere Installare Archiviazione di Container Azure in pool di nodi specifici. Per specificare parametri aggiuntivi del pool di archiviazione con questo comando, vedere questa tabella.
*Se sono presenti pool di nodi esistenti con l'etichetta acstor.azure.com/io-engine:acstor
, Archiviazione Azure Container installerà i componenti del piano dati per impostazione predefinita. In caso contrario, gli utenti possono passare il pool di nodi preferito all'interfaccia acstor
della riga di comando di Azure. Se il cluster ha solo il pool di nodi di sistema, verrà etichettato e usato per Archiviazione contenitori di Azure per impostazione predefinita. È importante notare che solo i componenti del piano dati saranno limitati al pool di nodi etichettato. I componenti del piano di controllo di Archiviazione Azure Container non sono limitati ai nodi etichettati e possono essere installati anche nel pool di nodi di sistema.
az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_D4s_v3 --node-count 3 --enable-azure-container-storage <storage-pool-type> --generate-ssh-keys
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 la san elastica di 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 elastico.
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.
Passaggio successivo
Selezionare il link per il tipo di archiviazione di backup selezionato e seguire le istruzioni per la creazione di volumi.