Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Container Storage è un servizio di gestione, distribuzione e orchestrazione basato sul cloud progettato nativamente per i container. Questa guida introduttiva illustra come connettersi a un cluster del Azure Kubernetes Service (AKS) basato su Linux, installare Archiviazione Container di Azure (versione 1.x.x) e creare un pool di archiviazione usando Azure CLI.
Importante
Questo articolo illustra come installare Archiviazione di Container Azure (versione 1.x.x), che ora richiede in modo esplicito un parametro --container-storage-version 1 di blocco della versione per l'installazione.
Azure Storage per i Contenitori (versione 2.x.x) è ora disponibile.
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Questo articolo richiede l'interfaccia della riga di comando di Azure versione 2.83.0 o successiva. Per ulteriori informazioni, vedere Come installare l'interfaccia della riga di comando di Azure. Disabilitare le estensioni, ad
aks-previewesempio se si verificano problemi. Installare o aggiornare le estensioni in base alle esigenze:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(Elastic SAN solo)
È necessario il client della riga di comando Kubernetes,
kubectl. È già installato se si usa Azure Cloud Shell. È possibile installarlo in locale eseguendo ilaz aks install-clicomando .Controllare se l'area di destinazione è supportata nelle aree di archiviazione di Azure Container.
- Se non si ha già un cluster del servizio Azure Kubernetes, seguire le istruzioni per l'installazione di un cluster del servizio Azure Kubernetes.
Come iniziare
Prendere nota dell'ID sottoscrizione di Azure. Se si vuole usare Azure Elastic SAN come memoria dati, è necessario un ruolo Proprietario di Archiviazione Azure Container o un ruolo Collaboratore di Archiviazione Azure Container assegnato alla sottoscrizione di Azure. L'accesso a livello di proprietario consente di installare l'estensione Archiviazione Azure Container, concede l'accesso alle risorse di archiviazione e concede l'autorizzazione per configurare la risorsa SAN elastica di 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 vuole creare l'account di archiviazione e selezionare Crea.
Impostare il contesto della sottoscrizione
Impostare il contesto della sottoscrizione di Azure usando il az account set comando . È possibile visualizzare gli ID sottoscrizione per tutte le sottoscrizioni a cui si ha accesso eseguendo il az account list --output table comando . Ricordarsi di sostituire <subscription-id> con l'ID sottoscrizione.
az account set --subscription <subscription-id>
Connettersi al cluster
Per connettersi al cluster, usare il client della riga di comando kubernetes, kubectl. È già installato se si usa Azure Cloud Shell oppure è possibile installarlo in locale eseguendo il az aks install-cli comando .
Configurare
kubectlper connettersi al cluster usando il comandoaz aks get-credentials. Il comando seguente:- Scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarle.
- Usa
~/.kube/config, il percorso predefinito per il file di configurazione di 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 nodesL'esempio di output seguente mostra i nodi nel cluster. Verificare che lo stato per 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.6Prendere nota del nome del pool di nodi. In questo esempio sarebbe nodepool1.
Scegliere un'opzione di archiviazione dei dati per il pool di archiviazione
Prima di distribuire Azure Container Storage, è necessario decidere quale opzione di storage di backend utilizzare per creare il pool di archiviazione e i volumi. Sono attualmente disponibili tre opzioni:
Azure Elastic SAN: Azure Elastic SAN è una soluzione ideale per database per utilizzo generale, 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 contemporaneamente a un singolo Storage Area Network (SAN), tuttavia i volumi persistenti possono essere collegati solo da un consumatore 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 utilizza unità NVMe locali o SSD temporanee sui nodi del cluster AKS. La latenza sub-ms è quindi ottimale per le applicazioni che non richiedono la durabilità dei dati o che includono la replica dei dati, 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.
Annotazioni
Per SAN di Elastic in Azure e Dischi di Azure, Archiviazione di Container Azure distribuisce l'archiviazione di supporto durante l'installazione. Non è necessario creare un proprio Elastic SAN o Azure Disk. Per usare Elastic SAN, è necessario un ruolo di Proprietario di Azure Container Storage o un ruolo di Collaboratore di Azure Container Storage nella sottoscrizione di Azure.
Utilizzo di risorse
Azure Container Storage richiede risorse specifiche del nodo per eseguire i componenti del servizio. In base alla selezione del tipo di pool di archiviazione, specificato quando si installa Archiviazione Azure Container, si tratta delle risorse usate:
| Tipo di pool di archiviazione | Core CPU | RAM |
|---|---|---|
| SAN elastico di Azure | None | None |
| Dischi di Azure | 1 | 1 GiB |
| Disco effimero - SSD temporanea | 1 | 1 GiB |
| Disco temporaneo - NVMe locale (livello standard) | 25% di core (il livello di prestazioni può essere aggiornato)* | 1 GiB |
Le risorse utilizzate sono per nodo e si applicano a ogni nodo nel pool di nodi in cui è installato Archiviazione Azure Container. Se i nodi non dispongono di risorse sufficienti, Azure Container Storage non può essere eseguito. Kubernetes ritenta automaticamente questi pod, quindi quando le risorse vengono liberate, i pod vengono inizializzati di nuovo.
*In un pool di archiviazione tipo 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 della CPU utilizzati si applica allo SKU più piccolo usato. Ad esempio, se si usa una combinazione di tipi di VM 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 un numero maggiore di operazioni di I/O al secondo.
Verificare che il tipo di macchina virtuale per il cluster soddisfi i criteri seguenti
Per usare Archiviazione Azure Container, è necessario un pool di nodi di almeno tre macchine virtuali Linux. Ogni macchina virtuale deve avere almeno quattro CPU virtuali (vCPU). Azure Container Storage usa un core per l'elaborazione dell'I/O su ogni macchina virtuale su cui è 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 l'archiviazione Premium di Azure.
- Se si intende usare la rete SAN elastica di Azure o i dischi di Azure come risorsa 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 unità SSD temp, scegliere una macchina virtuale con un disco SSD temporaneo, ad esempio Ev3 e Esv3.
Installare Azure Container Storage nel cluster AKS
Il comando di installazione varia a seconda che nel cluster sia già in esecuzione un'istanza anteprima di Azure Container Storage o se si installa Azure Container Storage nel cluster per la prima volta.
Aggiornare un'installazione di anteprima alla versione generale
Se nel cluster è già in esecuzione un'istanza di anteprima di Archiviazione Azure Container, è consigliabile eseguire l'aggiornamento alla versione disponibile a livello generale più recente eseguendo il comando seguente. Se si installa Azure Container Storage per la prima volta nel cluster, procedere a Installare Azure Container Storage 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.
Installa Archiviazione per Azure Container e crea un pool di archiviazione
Prima di eseguire l'installazione, assicurarsi che il cluster AKS soddisfi i requisiti delle VM.
Eseguire il comando seguente per installare Azure Container Storage nel cluster e creare uno storage pool. Sostituire <cluster-name> e <resource-group> con valori personalizzati. Sostituire <storage-pool-type> con azureDisk, ephemeralDisko elasticSan. Se si seleziona ephemeralDisk, è anche possibile specificare --storage-pool-optione i valori possono essere NVMe o Temp.
L'esecuzione di questo comando abilita Archiviazione Azure Container nel pool di nodi di sistema, che per impostazione predefinita è denominata nodepool1*. Se si desidera abilitarlo in altri pool di nodi, vedere Installare Azure Container Storage su pool di nodi specifici. Per specificare altri parametri, vedere i parametri del pool di archiviazione di Azure Container Storage.
*Se sono presenti pool di nodi esistenti con l'etichetta acstor.azure.com/io-engine:acstor, Azure Container Storage viene installato lì per impostazione predefinita. In caso contrario, viene installato nel pool di nodi di sistema.
Importante
Se hai creato il tuo cluster AKS usando il portale di Azure: il cluster probabilmente ha un pool di nodi utente e un pool di nodi sistema/agente. Tuttavia, se il cluster è costituito solo da un pool di nodi di sistema, che è il caso con i cluster di test/sviluppo creati con il portale di Azure, aggiungere prima un nuovo pool di nodi utente e quindi etichettarlo. Questo comportamento si verifica perché quando si crea un cluster AKS usando il portale di Azure, viene aggiunto un taint CriticalAddOnsOnly al pool di nodi di sistema/agente, il che blocca l'installazione di Azure Container Storage nel pool di nodi di sistema. Questo taint non viene aggiunto quando viene creato un cluster AKS utilizzando la CLI di Azure.
Se si utilizza un cluster AKS a più zone con Elastic SAN di Azure: È necessario utilizzare un Elastic SAN di archiviazione ridondante a livello di zona. L'impostazione predefinita per un pool di archiviazione SAN elastico è l'archiviazione con ridondanza locale. Per abilitare ZRS per Elastic SAN, usare elasticSan per il tipo di pool di archiviazione e aggiungere il flag --storage-pool-sku Premium_ZRS al seguente comando CLI.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --container-storage-version 1
La distribuzione richiede 10-15 minuti. Al termine, avrai un cluster Azure Kubernetes Service (AKS) con Azure Container Storage installato, i componenti per il tipo di pool di archiviazione scelto abilitati e un pool di archiviazione predefinito. Per abilitare più tipi di pool di archiviazione per creare più pool di archiviazione, vedere Abilitare altri tipi di pool di archiviazione.
Importante
Se hai specificato Azure Elastic SAN come archiviazione di supporto per il pool di archiviazione e non hai assegnato alla sottoscrizione di Azure il ruolo Azure Container Storage Owner o il ruolo Azure Container Storage Contributor, l'installazione di Azure Container Storage fallisce e un pool di archiviazione non viene creato. Se si tenta di abilitare Azure Elastic SAN come altro tipo di pool di archiviazione senza nessuno di questi ruoli, l'installazione precedente e i pool di archiviazione rimangono invariati e un pool di archiviazione SAN elastico non viene creato.
Installare Azure Container Storage su pool di nodi specifici
Se desidera installare Azure Container Storage su pool di nodi specifici, segua 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 specifici pool di nodi. Sostituire
<cluster-name>e<resource-group>con valori personalizzati. Sostituire<storage-pool-type>conazureDisk,ephemeralDiskoelasticSan. Se si selezionaephemeralDisk, è anche possibile specificare --storage-pool-option e i valori possono essereNVMeoTemp.az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --container-storage-version 1 --azure-container-storage-nodepools <comma separated values of nodepool names>
Abilitare altri tipi di pool di archiviazione
Se si vuole abilitare un tipo di pool di archiviazione non abilitato originariamente durante l'installazione di Archiviazione Azure Container, eseguire il comando seguente. Sostituire <cluster-name> e <resource-group> con valori personalizzati. Per <storage-pool-type>, specificare azureDisk, ephemeralDisko elasticSan.
Per specificare più parametri 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> --container-storage-version 1
Se il nuovo tipo di pool di archiviazione abilitato richiede più risorse rispetto al tipo di pool di archiviazione già abilitato, l'utilizzo delle risorse passa alla quantità massima.
Suggerimento
Se si aggiunge un nuovo pool di nodi al cluster e si vuole eseguire Archiviazione Azure Container in tale pool di nodi, è possibile specificare il pool di nodi con --azure-container-storage-nodepools <nodepool-name> quando si esegue il az aks update comando .
Visualizzare 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. Consulta Risolvere i problemi di archiviazione dei container di Azure.
Disabilitare i tipi di pool di archiviazione
Se non si usa più un tipo di pool di archiviazione specifico e si vuole 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, ephemeralDisko elasticSan.
az aks update -n <cluster-name> -g <resource-group> --disable-azure-container-storage <storage-pool-type>
Annotazioni
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.
Passo successivo
Per creare volumi, selezionare il collegamento per il tipo di archiviazione di backup selezionato.