Esercitazione: Installare Azure Container Archiviazione Preview per l'uso con 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 servizio Azure Kubernetes (servizio Azure Kubernetes) e si installerà il Archiviazione di Azure Container nel cluster. In alternativa, è possibile installare Azure Container Archiviazione usando una guida introduttiva anziché seguire i passaggi manuali di questa esercitazione.

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

  • 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 collaboratore all'identità gestita del servizio Azure Kubernetes
  • Installare l'estensione Archiviazione azure Container

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.

Nota

Se è già stato distribuito un cluster del servizio Azure Kubernetes, passare a Connessione al cluster.

Introduzione

  • Prendere nota dell'ID sottoscrizione di Azure. È consigliabile usare una sottoscrizione in cui si ha un ruolo di collaboratore Kubernetes se si vuole usare Dischi di Azure o Disco temporaneo come archiviazione dati. Se si vuole usare la rete SAN elastica di Azure come archiviazione dei dati, è necessario un ruolo Proprietario nella sottoscrizione di Azure.

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

Registrare i provider di risorse

I Microsoft.ContainerService provider di risorse e Microsoft.KubernetesConfiguration devono essere registrati nella sottoscrizione di Azure. Per registrare questi provider, eseguire il comando seguente:

az provider register --namespace Microsoft.ContainerService --wait 
az provider register --namespace Microsoft.KubernetesConfiguration --wait 

Per verificare se questi provider sono registrati correttamente, eseguire il comando seguente:

az provider list --query "[?namespace=='Microsoft.ContainerService'].registrationState"
az provider list --query "[?namespace=='Microsoft.KubernetesConfiguration'].registrationState"

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. 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-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 (VM) come nodi del cluster e si distribuirà il cluster prima di creare il pool di archiviazione.

Opzioni di archiviazione dei dati

  • SAN elastico di Azure: san elastico di Azure è una soluzione ideale per database per utilizzo generico, servizi di streaming e messaggistica, ambienti CD/CI 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 SSD temporanee nei nodi del servizio Azure Kubernetes ed è estremamente sensibile alla latenza (bassa latenza sub-ms), 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.

Tipi di macchina virtuale

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

Se si intende usare la rete SAN elastica di Azure o i dischi di Azure con Azure Container Archiviazione, è consigliabile scegliere un tipo di macchina virtuale per utilizzo generico, ad esempio standard_d4s_v5 per i nodi del cluster.

Se si intende usare disco temporaneo, scegliere un tipo di macchina virtuale ottimizzato per l'archiviazione, ad esempio standard_l8s_v3.

Importante

È necessario scegliere un tipo di macchina virtuale che supporti l'archiviazione Premium di Azure.

Creare un cluster del servizio Azure Container

Eseguire il comando seguente per creare un cluster del servizio Azure Kubernetes basato su Linux e abilitare un'identità gestita assegnata dal sistema. Se si ha già un cluster del servizio Azure Kubernetes che si vuole usare, è possibile ignorare questo passaggio.

Sostituire <resource-group> con il nome del gruppo di risorse creato, <cluster-name> con il nome del cluster che si vuole creare e <vm-type> con il tipo di macchina virtuale selezionato nel passaggio precedente. In questo esempio si creerà un cluster con tre nodi. Aumentare se --node-count si vuole un cluster più grande.

az aks create -g <resource-group> -n <cluster-name> --node-count 3 -s <vm-type> --generate-ssh-keys

Per il completamento della distribuzione possono essere necessari alcuni minuti.

Nota

Quando si crea un cluster del servizio Azure Kubernetes, il servizio Azure Kubernetes crea automaticamente un secondo gruppo di risorse per archiviare le risorse del servizio Azure Kubernetes. Questo secondo gruppo di risorse segue la convenzione MC_YourResourceGroup_YourAKSClusterName_Regiondi denominazione . Per maggiori informazioni, vedere Perché vengono creati due gruppi di risorse con il servizio Azure Kubernetes?

Stabilire la connessione 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 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.
    • ~/.kube/configUsa , il percorso predefinito 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 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.6
    

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

Etichettare il pool di nodi

Successivamente, è necessario aggiornare l'etichetta del pool di nodi per associare il pool di nodi al motore di I/O corretto per azure Container Archiviazione.

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. Prima di poter installare azure Container Archiviazione, è necessario aggiornare l'etichetta del pool di nodi utente come descritto in questa sezione. 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 agente/sistema, 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.

Eseguire il comando seguente per aggiornare l'etichetta del pool di nodi. Ricordarsi di sostituire <resource-group> e <cluster-name> con i propri valori e sostituire <nodepool-name> con il nome del pool di nodi.

az aks nodepool update --resource-group <resource-group> --cluster-name <cluster-name> --name <nodepool-name> --labels acstor.azure.com/io-engine=acstor

È possibile verificare che il pool di nodi sia etichettato correttamente accedendo al portale di Azure e passando al cluster del servizio Azure Kubernetes. Passare a Impostazioni > pool di nodi, selezionare il pool di nodi e in Taints ed etichette dovrebbe essere visualizzato Labels: acstor.azure.com/io-engine:acstor.

Assegnare il ruolo collaboratore all'identità gestita del servizio Azure Kubernetes

Il servizio Azure Container è un servizio separato dal servizio Azure Kubernetes, quindi è necessario concedere le autorizzazioni per consentire ad Azure Container Archiviazione di effettuare il provisioning dell'archiviazione per il cluster. In particolare, è necessario assegnare il ruolo predefinito Collaboratore controllo degli accessi in base al ruolo di Azure all'identità gestita del servizio Azure Kubernetes. A tale scopo, è possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure. Per eseguire questa operazione, è necessario un ruolo proprietario per la sottoscrizione di Azure. Se non si dispone di autorizzazioni sufficienti, chiedere all'amministratore di eseguire questi passaggi.

  1. Accedere al portale di Azure e cercare e selezionare Servizi Kubernetes.

  2. Individuare e selezionare il cluster del servizio Azure Kubernetes. Selezionare Impostazioni> Proprietà nel riquadro di spostamento a sinistra.

  3. In Gruppo di risorse infrastruttura dovrebbe essere visualizzato un collegamento al gruppo di risorse creato dal servizio Azure Kubernetes al momento della creazione del cluster. Selezionarlo.

  4. Selezionare Controllo di accesso (IAM) dal riquadro a sinistra.

  5. Selezionare Aggiungi assegnazione > di ruolo.

  6. In Tipo di assegnazione selezionare Ruoli di amministratore con privilegi e quindi Collaboratore, quindi selezionare Avanti. Se non si ha un ruolo Proprietario nella sottoscrizione, non sarà possibile aggiungere il ruolo Collaboratore.

    Screenshot che mostra come usare il portale di Azure per aggiungere il ruolo Collaboratore all'identità gestita del servizio Azure Kubernetes.

  7. In Assegna accesso a selezionare Identità gestita.

  8. In Membri fare clic su + Seleziona membri. Verrà visualizzato il menu Seleziona identità gestite.

  9. In Identità gestita selezionare Identità gestita assegnata dall'utente.

  10. In Seleziona cercare e selezionare l'identità gestita con il nome del cluster e -agentpool accodato.

  11. Fare clic su Seleziona, quindi rivedi e assegna.

Installare Azure Container Storage

L'installazione iniziale usa i comandi dell'interfaccia della riga di comando di Azure Arc per scaricare una nuova estensione. Sostituire <cluster-name> e <resource-group> con valori personalizzati. Il <extension-name> valore può essere qualsiasi cosa desiderata. Si tratta solo di un'etichetta per l'estensione che si sta installando.

Durante l'installazione, potrebbe essere richiesto di installare .k8s-extension Selezionare Y.

az k8s-extension create --cluster-type managedClusters --cluster-name <cluster-name> --resource-group <resource-group> --name <extension-name> --extension-type microsoft.azurecontainerstorage --scope cluster --release-train stable --release-namespace acstor

Il completamento dell'installazione richiede 10-15 minuti. È possibile verificare se l'installazione è stata completata correttamente eseguendo il comando seguente e verificando che provisioningState abbia esito positivo:

az k8s-extension list --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type managedClusters

L'installazione di Azure Container Archiviazione è stata completata. Sono ora disponibili nuove classi di archiviazione che è possibile usare per i carichi di lavoro Kubernetes.

Passaggi successivi

È ora possibile creare un pool di archiviazione e un'attestazione di volume permanente e quindi distribuire un pod e collegare un volume permanente. Seguire la procedura descritta nell'articolo relativo alle procedure appropriate.