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.
Questa esercitazione presenta l'archiviazione di Azure Container e illustra come distribuire e gestire l'archiviazione nativa del contenitore per le applicazioni in esecuzione nel servizio Azure Kubernetes. Se non si vuole distribuire Azure Container Storage, è possibile ignorare questa esercitazione e procedere direttamente a Distribuire un'applicazione in AKS. In questa serie di esercitazioni non sarà necessaria l'archiviazione di Azure Container per l'applicazione vetrina di base.
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.
Archiviazione di Container Azure semplifica la gestione delle applicazioni con stato in Kubernetes offrendo l'archiviazione nativa del contenitore su misura per una varietà di carichi di lavoro, tra cui database, piattaforme di analisi e applicazioni ad alte prestazioni.
Al termine di questa esercitazione, si eseguiranno le seguenti attività:
- Informazioni su come l'Archiviazione di Container di Azure supporta diversi tipi di carichi di lavoro in Kubernetes.
- Esplorare più opzioni back-end di archiviazione per personalizzare l'archiviazione in base alle esigenze dell'applicazione.
- Distribuire Azure Container Storage (versione 1.x.x) nel tuo cluster AKS e creare un volume temporaneo generico.
Prima di iniziare
Nelle esercitazioni precedenti, hai creato un'immagine del container, l'hai caricata in un'istanza di ACR (Azure Container Registry) e hai creato un cluster AKS (Azure Kubernetes Service). Iniziare con Esercitazione 1 - Preparare l'applicazione per il servizio Azure Kubernetes per proseguire.
- Questa esercitazione richiede l'uso dell'interfaccia della riga di comando di Azure versione 2.35.0 o successiva. Il portale e PowerShell non sono attualmente supportati per Archiviazione contenitori di Azure. Controllare la versione con
az --version. Per installare o eseguire l'aggiornamento, vedere 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. - È necessario avere un cluster AKS basato su Linux esistente con almeno 3 nodi con SKU di VM ottimizzati per l'archiviazione o SKU di VM con accelerazione GPU. Vedere Esercitazione 3 - Creare un cluster AKS.
- È 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.
Installare l'estensione Kubernetes
Aggiungere o eseguire l'aggiornamento alla versione più recente di k8s-extension eseguendo il comando seguente.
az extension add --upgrade --name k8s-extension
Connettersi al cluster e controllare lo stato del nodo
Se non si è già connessi al cluster dall'esercitazione precedente, eseguire i comandi seguenti. Se si è già connessi, è possibile ignorare questa sezione.
Eseguire il comando seguente per connettersi al cluster.
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterVerificare 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.30.9 aks-nodepool1-34832848-vmss000001 Ready agent 80m v1.30.9 aks-nodepool1-34832848-vmss000002 Ready agent 80m v1.30.9
Scegliere un'opzione di archiviazione di backup
Azure Container Storage (versione 1.x.x) utilizza i pool di archiviazione per provisionare e gestire volumi generici e persistenti. Offre un'ampia gamma di opzioni di archiviazione back-end per i pool di archiviazione, ognuno dei quali è adatto per carichi di lavoro specifici. La selezione del tipo di archiviazione appropriato è fondamentale per ottimizzare le prestazioni, la durabilità e l'efficienza dei costi del carico di lavoro. Per questa esercitazione si userà Ephemeral Disk con NVMe locale come risorsa di archiviazione di backup per creare un volume temporaneo generico.For this tutorial, we'll use Ephemeral Disk with local NVMe as backing storage to create a generic ephemeral volume. Verranno tuttavia esaminate anche le altre opzioni di archiviazione di backup che consentono di creare volumi persistenti.
Dischi temporanei
Il Disco Effimero utilizza le risorse di archiviazione locali sui nodi AKS (NVMe locale o SSD temporaneo). Offre bassa latenza sub-ms e operazioni di I/O al secondo elevate, ma nessuna persistenza dei dati se la macchina virtuale viene riavviata. Il disco temporaneo è particolarmente adatto per applicazioni come Cassandra che assegnano priorità alla velocità di persistenza ed è ideale per i carichi di lavoro con la replica a livello di applicazione.
È possibile usare il disco temporaneo per creare volumi temporanei generici o volumi permanenti, anche se i dati andranno persi se la macchina virtuale viene riavviata.
Dischi di Azure
Ideale per database come PostgreSQL e MongoDB, i dischi di Azure offrono opzioni di durabilità, scalabilità e prestazioni multilivello, tra cui SSD Premium e Ultra SSD.
I dischi di Azure consentono il provisioning automatico dei volumi di archiviazione e includono ridondanza predefinita e disponibilità elevata.
SAN elastico di Azure (anteprima)
Progettato per le esigenze di archiviazione condivisa e i database per utilizzo generico che richiedono scalabilità e disponibilità elevata, La san elastica di Azure è ideale per carichi di lavoro come pipeline CI/CD o elaborazione di dati su larga scala.
Abilitare Archiviazione Azure Container (versione 1.x.x) e creare un pool di archiviazione
Eseguire il seguente comando per installare Azure Container Storage sul cluster e creare un pool di archiviazione locale NVMe.
az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk --container-storage-version 1 --storage-pool-option NVMe
La distribuzione deve richiedere meno di 15 minuti.
Verificare lo stato del pool di archiviazione
Al termine della distribuzione, i componenti per il tipo di pool di archiviazione scelto verranno abilitati e si avrà un pool di archiviazione predefinito.
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.
Visualizzare le classi di archiviazione disponibili
Quando il pool di archiviazione è pronto per l'uso, è necessario selezionare una classe di archiviazione per definire il modo in cui l'archiviazione viene creata dinamicamente durante la creazione e la distribuzione di volumi.
Eseguire kubectl get sc per visualizzare le classi di archiviazione disponibili. Verrà visualizzata una classe di archiviazione denominata acstor-<storage-pool-name>. Usare questa classe di archiviazione nella sezione successiva per distribuire un pod.
Distribuire un pod con un volume temporaneo generico
Creare un pod usando Fio (Tester di I/O Flessibile) per benchmarking e simulazione del carico di lavoro, utilizzando un volume effimero generico.
Usare l'editor di testo preferito per creare un file manifesto YAML, ad esempio
code acstor-pod.yaml.Incollare il codice seguente e salvare il file.
kind: Pod apiVersion: v1 metadata: name: fiopod spec: nodeSelector: acstor.azure.com/io-engine: acstor containers: - name: fio image: nixery.dev/shell/fio args: - sleep - "1000000" volumeMounts: - mountPath: "/volume" name: ephemeralvolume volumes: - name: ephemeralvolume ephemeral: volumeClaimTemplate: metadata: labels: type: my-ephemeral-volume spec: accessModes: [ "ReadWriteOnce" ] storageClassName: acstor-ephemeraldisk-nvme # replace with the name of your storage class if different resources: requests: storage: 1GiSe si modificano le dimensioni di archiviazione del volume, assicurarsi che le dimensioni siano inferiori alla capacità disponibile del disco temporaneo di un singolo nodo. Eseguire
kubectl get diskpool -n acstorper controllare la capacità disponibile.Applicare il file manifesto YAML per distribuire il pod.
kubectl apply -f acstor-pod.yamlVerrà visualizzato un output simile al seguente:
pod/fiopod createdVerificare che il pod sia in esecuzione e che l'attestazione del volume temporaneo sia stata associata correttamente al pod:
kubectl describe pod fiopod kubectl describe pvc fiopod-ephemeralvolume
È stato ora distribuito un pod che usa NVMe locale come risorsa di archiviazione ed è possibile usarlo per i carichi di lavoro Kubernetes.
Verificare la capacità disponibile dei dischi temporanei prima di effettuare il provisioning di volumi aggiuntivi:
kubectl describe node <node-name>
Per altre informazioni su Archiviazione Azure Container (versione 1.x.x), tra cui come creare volumi persistenti, vedere Che cos'è Archiviazione azure Container?
Pulire le risorse
Per il resto di questa serie di esercitazioni non è necessaria l'archiviazione di Azure Container, pertanto è consigliabile eliminarla ora per evitare di incorrere in addebiti di Azure non necessari.
Eliminare il pod.
kubectl delete pod fiopodEliminare il pool di archiviazione.
kubectl delete sp -n acstor <storage-pool-name>Eliminare l'istanza dell'estensione.
az aks update -n myAKSCluster -g myResourceGroup --disable-azure-container-storage all
Passo successivo
In questa esercitazione, hai distribuito Azure Container Storage (versione 1.x.x) sul cluster AKS. Ecco cosa hai imparato a fare:
- Abilitare Archiviazione di Container Azure (versione 1.x.x) sul cluster del servizio Azure Kubernetes.
- Scegliere un tipo di archiviazione di backup e creare un pool di archiviazione.
- Distribuire un pod con un volume temporaneo generico.
Nell'esercitazione successiva si apprenderà come distribuire un'applicazione nel cluster.
Azure Kubernetes Service