Avvio rapido: distribuire un cluster del Servizio Azure Kubernetes (AKS) automatico (anteprima)
Si applica a: ✔️ Servizio Azure Kubernetes automatico (anteprima)
Il Servizio Azure Kubernetes (AKS) automatico (anteprima) offre l'esperienza Kubernetes gestita più semplice per sviluppatori, tecnici DevOps e tecnici della piattaforma. Ideale per le applicazioni moderne e di intelligenza artificiale, il Servizio Azure Kubernetes automatico automatizza la configurazione e le operazioni del cluster del Servizio Azure Kubernetes e incorpora le configurazioni consigliate. Gli utenti di qualsiasi livello di competenza possono trarre vantaggio dalla sicurezza, dalle prestazioni e dalla affidabilità del Servizio Azure Kubernetes automatico per le applicazioni.
Con questa guida introduttiva, si potrà:
- Distribuire un cluster del Servizio Azure Kubernetes automatico.
- Eseguire un'applicazione multi-contenitore di esempio con un gruppo di microservizi e front-end web, simulando uno scenario di vendita al dettaglio.
Operazioni preliminari
Questa guida introduttiva presuppone una comprensione di base dei concetti relativi a Kubernetes. Per altre informazioni, vedere Concetti di base relativi a Kubernetes per il servizio Azure Kubernetes.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Questo articolo richiede la versione 2.57.0 o successiva dell'interfaccia della riga di comando di Azure. Se si sta usando Azure Cloud Shell, la versione più recente è già installata.
- Questo articolo richiede l'estensione dell'interfaccia della
aks-preview
riga di comando di Azure versione 9.0.0b4 o successiva. - Se si hanno più sottoscrizioni di Azure, selezionare l'ID sottoscrizione appropriato in cui devono essere fatturate le risorse, usando il comando set account az.
- Registrare la funzionalità
AutomaticSKUPreview
nella sottoscrizione di Azure. - L'identità che crea il cluster deve avere anche le autorizzazioni seguenti per il gruppo di risorse:
Microsoft.Authorization/policyAssignments/write
Microsoft.Authorization/policyAssignments/read
- I cluster automatici del servizio Azure Kubernetes richiedono la distribuzione in aree di Azure che supportano almeno 3 zone di disponibilità.
- Per distribuire un file Bicep, è necessario l'accesso in scrittura alle risorse create e l'accesso a tutte le operazioni sul tipo di risorsa
Microsoft.Resources/deployments
. Ad esempio, per creare una macchina virtuale, sono necessarie le autorizzazioniMicrosoft.Compute/virtualMachines/write
eMicrosoft.Resources/deployments/*
. Per un elenco dei ruoli e delle autorizzazioni, vedere Ruoli predefiniti di Azure.
Importante
Il servizio Azure Kubernetes automatico tenta di selezionare dinamicamente uno SKU di macchina virtuale per il system
pool di nodi in base alla capacità disponibile nella sottoscrizione. Assicurarsi che la sottoscrizione abbia una quota per 16 vCPU di uno degli SKU seguenti nell'area in cui si distribuisce il cluster: Standard_D4pds_v5, Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2 Standard_DS12_v2. È possibile visualizzare le quote per specifiche famiglie di macchine virtuali e inviare richieste di aumento delle quote tramite il portale di Azure.
Installare l'estensione dell'interfaccia della riga di comando di Azure aks-preview
Importante
Le funzionalità di anteprima del servizio Azure Kubernetes sono disponibili in modalità self-service e opzionale. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:
Per installare l'estensione aks-preview, eseguire il comando seguente:
az extension add --name aks-preview
Per eseguire l'aggiornamento alla versione più recente dell'estensione rilasciata eseguire il comando seguente:
az extension update --name aks-preview
Registrare i flag di funzionalità
Per usare Il servizio Azure Kubernetes Automatico in anteprima, registrare il flag seguente usando il comando az feature register .
az feature register --namespace Microsoft.ContainerService --name AutomaticSKUPreview
Verificare lo stato della registrazione usando il comando az feature show. Sono necessari alcuni minuti per visualizzare lo stato Registrato:
az feature show --namespace Microsoft.ContainerService --name AutomaticSKUPreview
Quando lo stato passa a Registrato, aggiornare la registrazione del provider di risorse Microsoft.ContainerService usando il comando az provider register:
az provider register --namespace Microsoft.ContainerService
Creare un gruppo di risorse
Un gruppo di risorse di Azure è un gruppo logico in cui le risorse di Azure vengono distribuite e gestite.
L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.
Creare un gruppo di risorse con il comando az group create.
az group create --name myResourceGroup --location eastus
L'output di esempio seguente mostra la corretta creazione del gruppo di risorse:
{
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Creare un cluster del Servizio Azure Kubernetes automatico
Per creare un cluster del Servizio Azure Kubernetes automatico, usare il comando aks az create. L'esempio seguente crea un cluster denominato myAKSAutomaticCluster con l'integrazione di Managed Prometheus e Container Insights abilitata.
az aks create \
--resource-group myResourceGroup \
--name myAKSAutomaticCluster \
--sku automatic
Il comando viene completato dopo pochi minuti e vengono restituite informazioni in formato JSON sul cluster.
Stabilire la connessione al cluster
Per gestire un cluster Kubernetes, usare il client da riga di comando kubernetes kubectl. kubectl
è già installato se si usa Azure Cloud Shell. Per installare kubectl
in locale, usare il comando az aks install-cli. I cluster del Servizio Azure Kubernetes automatico sono configurati con Microsoft Entra ID per il controllo degli accessi in base al ruolo (RBAC) di Kubernetes. Quando si crea un cluster usando l'interfaccia della riga di comando di Azure, all'utente vengono assegnati ruoli predefiniti per Azure Kubernetes Service RBAC Cluster Admin
.
Configurare kubectl
per connettersi al cluster Kubernetes usando il comando az aks get-credentials. Questo comando scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarli.
az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster
Verificare la connessione al cluster usando il comando kubectl get. Questo comando restituisce un elenco dei nodi del cluster.
kubectl get nodes
L'output di esempio seguente mostra come viene chiesto di accedere.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Dopo l'accesso, l'output di esempio seguente mostra i pool di nodi di sistema gestiti. Assicurarsi che lo stato del nodo sia Pronto.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-13213685-vmss000000 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000001 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000002 Ready agent 2m26s v1.28.5
Creare un cluster Kubernetes automatico
Per creare un cluster del Servizio Azure Kubernetes automatico, cercare Servizi Kubernetes e selezionare Cluster Kubernetes automatico nelle opzioni a discesa.
Nella scheda Informazioni di base compilare tutti i campi obbligatori necessari per iniziare: Sottoscrizione, Gruppo di risorse, Nome cluster e Area
Se i prerequisiti non sono soddisfatti e la sottoscrizione richiede la registrazione dei flag di anteprima, verrà visualizzato un errore nel campo Sottoscrizione:
Nella scheda Monitoraggio scegliere le configurazioni di monitoraggio da Monitoraggio di Azure, Prometheus gestito, Grafana gestito e/o configurare gli avvisi. Aggiungere tag (facoltativo) e procedere con la creazione del cluster.
Introduzione alla configurazione della prima applicazione da GitHub e alla configurazione di una pipeline di distribuzione automatizzata.
Stabilire la connessione al cluster
Per gestire un cluster Kubernetes, usare il client da riga di comando kubernetes kubectl. kubectl
è già installato se si usa Azure Cloud Shell. Per installare kubectl
in locale, usare il comando az aks install-cli. I cluster del Servizio Azure Kubernetes automatico sono configurati con Microsoft Entra ID per il controllo degli accessi in base al ruolo (RBAC) di Kubernetes. Quando si crea un cluster usando l'interfaccia del portale di Azure, all'utente vengono assegnati ruoli predefiniti per Azure Kubernetes Service RBAC Cluster Admin
.
Configurare kubectl
per connettersi al cluster Kubernetes usando il comando az aks get-credentials. Questo comando scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarli.
az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster
Verificare la connessione al cluster usando il comando kubectl get. Questo comando restituisce un elenco dei nodi del cluster.
kubectl get nodes
L'output di esempio seguente mostra come viene chiesto di accedere.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Dopo l'accesso, l'output di esempio seguente mostra i pool di nodi di sistema gestiti. Assicurarsi che lo stato del nodo sia Pronto.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-13213685-vmss000000 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000001 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000002 Ready agent 2m26s v1.28.5
Creare un gruppo di risorse
Un gruppo di risorse di Azure è un gruppo logico in cui le risorse di Azure vengono distribuite e gestite. Quando si crea un gruppo di risorse, viene richiesto di specificare una posizione. Questa posizione è la posizione di archiviazione dei metadati del gruppo di risorse e dove le risorse vengono eseguite in Azure se non si specifica un'altra regione durante la creazione della risorsa.
L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.
Creare un gruppo di risorse con il comando az group create.
az group create --name myResourceGroup --location eastus
L'output di esempio seguente mostra la corretta creazione del gruppo di risorse:
{
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Esaminare il file Bicep
Questo file Bicep definisce un cluster del Servizio Azure Kubernetes automatico. Durante l'anteprima, è necessario specificare il profilo del pool di agenti nodepool di sistema.
@description('The name of the managed cluster resource.')
param clusterName string = 'myAKSAutomaticCluster'
@description('The location of the managed cluster resource.')
param location string = resourceGroup().location
resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
name: clusterName
location: location
sku: {
name: 'Automatic'
}
properties: {
agentPoolProfiles: [
{
name: 'systempool'
mode: 'System'
count: 3
}
]
}
identity: {
type: 'SystemAssigned'
}
}
Per altre informazioni sulla risorsa definita nel file Bicep, vedere le informazioni di riferimento su Microsoft.ContainerService/managedClusters.
Distribuire il file Bicep
Salvare il file Bicep come main.bicep nel computer locale.
Importante
Il file Bicep imposta il parametro
clusterName
sulla stringa myAKSAutomaticCluster. Se si vuole usare un nome di cluster diverso, assicurarsi di aggiornare la stringa con il nome del cluster preferito prima di salvare il file nel computer.Distribuire il file Bicep tramite l'interfaccia della riga di comando di Azure.
az deployment group create --resource-group myResourceGroup --template-file main.bicep
Per creare il cluster del servizio Azure Kubernetes sono necessari alcuni minuti. Attendere il completamento della distribuzione del cluster prima di procedere al passaggio successivo.
Stabilire la connessione al cluster
Per gestire un cluster Kubernetes, usare il client da riga di comando kubernetes kubectl. kubectl
è già installato se si usa Azure Cloud Shell. Per installare kubectl
in locale, usare il comando az aks install-cli. I cluster del Servizio Azure Kubernetes automatico sono configurati con Microsoft Entra ID per il controllo degli accessi in base al ruolo (RBAC) di Kubernetes. Quando si crea un cluster usando Bicep, è necessario assegnare uno dei ruoli predefiniti, ad esempio Azure Kubernetes Service RBAC Reader
, Azure Kubernetes Service RBAC Writer
, Azure Kubernetes Service RBAC Admin
o Azure Kubernetes Service RBAC Cluster Admin
agli utenti, con ambito al cluster o a uno spazio dei nomi specifico. Assicurarsi anche che gli utenti abbiano il Azure Kubernetes Service Cluster User
ruolo predefinito per poter eseguire az aks get-credentials
, quindi ottenere kubeconfig del cluster del Servizio Azure Kubernetes usando il comando az aks get-credentials
.
Configurare kubectl
per connettersi al cluster Kubernetes usando il comando az aks get-credentials. Questo comando scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarli.
az aks get-credentials --resource-group myResourceGroup --name
Verificare la connessione al cluster usando il comando kubectl get. Questo comando restituisce un elenco dei nodi del cluster.
kubectl get nodes
L'output di esempio seguente mostra come viene chiesto di accedere.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Dopo l'accesso, l'output di esempio seguente mostra i pool di nodi di sistema gestiti. Assicurarsi che lo stato del nodo sia Pronto.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-13213685-vmss000000 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000001 Ready agent 2m26s v1.28.5
aks-nodepool1-13213685-vmss000002 Ready agent 2m26s v1.28.5
Distribuire l'applicazione
Per distribuire l'applicazione, usare un file manifesto per creare tutti gli oggetti necessari per eseguire l'applicazione di Archiviazione del servizio Azure Kubernetes. Un file manifesto Kubernetes definisce lo stato desiderato di un cluster, ad esempio le immagini del contenitore da eseguire. Il manifesto include le distribuzioni e i servizi Kubernetes seguenti:
- Front-store: applicazione Web per i clienti per visualizzare i prodotti ed effettuare ordini.
- Servizio prodotto: mostra le informazioni sul prodotto.
- Servizio ordini: effettua ordini.
- Rabbit MQ: coda di messaggi per una coda di ordini.
Nota
Non è consigliabile eseguire contenitori con stato, ad esempio Rabbit MQ, senza l'archiviazione permanente per la produzione. Questi vengono usati qui per semplicità, ma è consigliabile usare servizi gestiti, ad esempio Azure Cosmos DB o il bus di servizio di Azure.
Creare uno spazio dei nomi
aks-store-demo
in cui distribuire le risorse Kubernetes.kubectl create ns aks-store-demo
Distribuire l'applicazione usando il comando kubectl apply nello spazio dei nomi
aks-store-demo
. Il file YAML che definisce la distribuzione si trova in GitHub.kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml
L'output di esempio seguente mostra le distribuzioni e i servizi:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created ingress/store-front created
Testare l'applicazione
Quando l'applicazione viene eseguita, un servizio Kubernetes espone il front-end dell'applicazione a Internet. Questo processo può richiedere alcuni minuti.
Controllare lo stato dei pod distribuiti usando il comando kubectl get pods. Fare in modo che tutti i pod siano
Running
prima di procedere. Se si tratta del primo carico di lavoro distribuito, il provisioning automatico dei nodi potrebbe richiedere alcuni minuti per creare un pool di nodi per eseguire i pod.kubectl get pods -n aks-store-demo
Verificare la presenza di un indirizzo IP pubblico per l'applicazione front-store. Monitorare lo stato usando il comando kubectl get service con l'argomento
--watch
.kubectl get ingress store-front -n aks-store-demo --watch
L'output ADDRESS per il servizio
store-front
inizialmente mostra vuoto:NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12m
Quando INDIRIZZO passa da in sospeso a un indirizzo IP pubblico effettivo, usare
CTRL-C
per arrestare il processo di controllokubectl
.L'output di esempio seguente mostra un indirizzo IP pubblico valido assegnato al servizio:
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12m
Aprire un browser web all'indirizzo IP esterno dell'ingresso per visualizzare l'applicazione di Azure Store in azione.
Eliminare il cluster
Se non si prevede di eseguire l'esercitazione del servizio Azure Kubernetes, ripulire le risorse non necessarie per evitare addebiti di Azure. Eseguire il comando az group delete per rimuovere il gruppo di risorse, il servizio contenitore e tutte le risorse correlate.
az group delete --name myResourceGroup --yes --no-wait
Nota
Il cluster del servizio Azure Kubernetes è stato creato con un'identità gestita assegnata dal sistema, che è l'opzione di identità predefinita usata in questo avvio rapido. Questa identità è gestita dalla piattaforma, pertanto non è necessario rimuoverla manualmente.
Passaggi successivi
In questo avvio rapido, è stato distribuito un cluster Kubernetes usando il Servizio Azure Kubernetes automatico e successivamente è stata distribuita una semplice applicazione multi-contenitore. Questa applicazione di esempio è solo a scopo dimostrativo e non rappresenta tutte le procedure consigliate per le applicazioni Kubernetes. Per indicazioni sulla creazione di soluzioni complete con il servizio Azure Kubernetes per la produzione, vedere Linee guida per le soluzioni del servizio Azure Kubernetes.
Per ulteriori informazioni sul Servizio Azure Kubernetes automatico, continuare con l'introduzione.
Azure Kubernetes Service