Guida introduttiva: Usare Azure Container Archiviazione Preview con servizio Azure Kubernetes

Azure Container Archiviazione è un servizio di gestione, distribuzione e orchestrazione basato sul cloud creato in modo nativo per i contenitori. Questa guida introduttiva illustra come creare un cluster di servizio Azure Kubernetes (AKS) basato su Linux, installare azure Container Archiviazione e creare un pool di archiviazione usando l'interfaccia della riga di comando di Azure.

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 az aks install-cli comando .

Introduzione

  • Prendere nota dell'ID sottoscrizione di Azure. Se si vuole usare la rete SAN elastica di Azure come archiviazione dei dati, è necessario un ruolo di proprietario del controllo degli accessi in base al ruolo di Azure nella sottoscrizione di Azure. L'accesso a livello di proprietario concede all'estensione azure Container Archiviazione le autorizzazioni appropriate per interagire con l'API SAN elastica. 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.

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 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>

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. Se si ha già un gruppo di risorse che si vuole usare, è possibile ignorare questa sezione.

Quando si crea un gruppo di risorse, viene richiesto di specificare una posizione. Questo percorso è:

  • Posizione di archiviazione dei metadati del gruppo di risorse.
  • Dove verranno eseguite le risorse in Azure se non si specifica un'altra area durante la creazione delle risorse.

Creare un gruppo di risorse usando il comando az group create. Sostituire <resource-group> 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. Vedere questo elenco di aree di Azure in cui è disponibile l'Archiviazione di Azure Container.

az group create --name <resource-group> --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 dei dati per il pool di archiviazione

Prima di distribuire Azure Container Archiviazione, è necessario decidere quale opzione di archiviazione back-end usare per creare il pool di archiviazione e i volumi permanenti. Sono attualmente disponibili tre opzioni:

  • SAN elastico di Azure: san elastico di Azure è una soluzione ideale per database per utilizzo generico, servizi di streaming e messaggistica, ambienti CI/CD e altri carichi di lavoro di livello 1/livello 2. Archiviazione viene effettuato il provisioning su richiesta per ogni volume creato e snapshot del volume. Più cluster possono accedere a un singolo san contemporaneamente, tuttavia i volumi permanenti possono essere collegati solo da un consumer alla volta.

  • Dischi di Azure: i dischi di Azure sono adatti per database come MySQL, MongoDB e PostgreSQL. Archiviazione viene effettuato il provisioning per le dimensioni del pool di archiviazione del contenitore di destinazione e le 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 sub-ms), quindi è consigliabile per le applicazioni senza requisiti di durabilità dei dati o con supporto predefinito per 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.

Nota

Per la rete SAN elastica di Azure e i dischi di Azure, Azure Container Archiviazione distribuirà automaticamente l'archiviazione di backup durante l'installazione. Non è necessario creare una san elastica o un disco di Azure personalizzato. Per usare la san elastica, è necessario un ruolo di proprietario del controllo degli accessi in base al ruolo di Azure nella sottoscrizione di Azure.

Utilizzo di risorse

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

Archiviazione tipo di pool Core CPU RAM
SAN di Elastic in Azure  None None
Dischi di Azure 1 1 GiB
Disco temporaneo - UNITÀ SSD temporanea 1 1 GiB
Disco temporaneo - NVMe locale 25% dei core (a seconda delle dimensioni del nodo)* 2 GiB

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

*In un pool di archiviazione tipo Disco temporaneo - NVMe locale, 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 VM a 8 core e 16 core, il consumo di risorse è di 2 core.

Scegliere un tipo di macchina virtuale per il cluster

Si specificherà il tipo di macchina virtuale quando si crea il cluster nella sezione successiva. 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 un tipo di macchina virtuale ottimizzato per l'archiviazione, ad esempio standard_l8s_v3.
  • 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.

Creare un nuovo cluster del servizio Azure Kubernetes e installare Azure Container Archiviazione

Se è già stato distribuito un cluster del servizio Azure Kubernetes, ignorare questa sezione e passare a Installare Azure Container Archiviazione in un cluster del servizio Azure Kubernetes esistente.

Eseguire il comando seguente per creare un nuovo cluster del servizio Azure Kubernetes, installare Azure Container Archiviazione e creare un pool di archiviazione. Sostituire <cluster-name> e <resource-group> con i propri valori e specificare il tipo di macchina virtuale da usare. 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 abiliterà l'Archiviazione di Azure Container nel pool di nodi di sistema* con tre macchine virtuali Linux. Per impostazione predefinita, il pool di nodi di sistema è denominato nodepool1. Per abilitare l'Archiviazione di Azure Container in altri pool di nodi, vedere Installare Azure Container Archiviazione 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'etichettaacstor.azure.com/io-engine:acstor, azure Container Archiviazione verrà installato per impostazione predefinita. In caso contrario, viene installato 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>

La distribuzione richiederà 10-15 minuti. Al termine, si avrà un cluster del servizio Azure Kubernetes con Azure Container Archiviazione installato, 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 altri tipi di pool di archiviazione.

Importante

Se è stata specificata la san elastica di Azure come risorsa di archiviazione per il pool di archiviazione e non si ha accesso a livello di proprietario alla sottoscrizione di Azure, verranno installati solo i Archiviazione di Azure Container e non verrà creato un pool di archiviazione. In questo caso, sarà necessario creare manualmente un pool di archiviazione SAN elastico.

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 non Message dice StoragePool is ready, il pool di archiviazione sta ancora creando o si è verificato un problema. Vedere Risolvere i problemi relativi all'Archiviazione di Azure Container.

Installare azure Container Archiviazione in un cluster del servizio Azure Kubernetes esistente

Se si dispone già di un cluster del servizio Azure Kubernetes che soddisfa i requisiti della macchina virtuale, eseguire il comando seguente per installare azure Container Archiviazione nel cluster e creare un pool di archiviazione. Sostituire <cluster-name> e <resource-group> con valori personalizzati. Sostituire <storage-pool-type> con azureDisk, ephemeraldisko elasticSan.

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

*Se sono presenti pool di nodi esistenti con l'etichettaacstor.azure.com/io-engine:acstor, azure Container Archiviazione 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, che è il caso con i cluster di test/sviluppo creati con il portale di Azure, sarà prima necessario aggiungere un nuovo pool di nodi utente e quindi etichettarlo. Questo perché quando si crea un cluster del servizio Azure Kubernetes usando il portale di Azure, viene aggiunto un taint CriticalAddOnsOnly al pool di nodi di sistema/agente, che blocca l'installazione di Azure Container Archiviazione 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>

Il completamento della distribuzione richiederà 10-15 minuti.

Installare Archiviazione di Azure Container in pool di nodi specifici

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

  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 Archiviazione in pool di nodi specifici. 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-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 vuole abilitare un tipo di pool di archiviazione non abilitato in origine durante l'installazione di Azure Container Archiviazione, eseguire il comando seguente. Sostituire <cluster-name> e <resource-group> con valori personalizzati. Per <storage-pool-type>, specificare azureDisk, ephemeralDisko 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 di pool di archiviazione già abilitato, l'utilizzo delle risorse passerà alla quantità massima.

Suggerimento

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

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>

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.

Passaggi successivi

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