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 comandoaz 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
.
Configurare
kubectl
per connettersi al cluster usando il comandoaz 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>
Verificare la connessione al cluster usando il comando
kubectl get
. Questo comando restituisce un elenco dei nodi del cluster.kubectl get nodes
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.
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>
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>
conazureDisk
,ephemeralDisk
oelasticSan
. Se si selezionaephemeralDisk
, è anche possibile specificare --storage-pool-option e i valori possono essereNVMe
oTemp
.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.