Condividi tramite


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.

  • 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 autorizzazioni Microsoft.Compute/virtualMachines/write e Microsoft.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

  1. Per creare un cluster del Servizio Azure Kubernetes automatico, cercare Servizi Kubernetes e selezionare Cluster Kubernetes automatico nelle opzioni a discesa.

    Screenshot del punto di ingresso per la creazione di un cluster del Servizio Azure Kubernetes automatico nel portale di Azure.

  2. Nella scheda Informazioni di base compilare tutti i campi obbligatori necessari per iniziare: Sottoscrizione, Gruppo di risorse, Nome cluster e Area

    Screenshot della scheda Crea - Informazioni di base per un cluster del Servizio Azure Kubernetes automatico nel portale di Azure.

    Se i prerequisiti non sono soddisfatti e la sottoscrizione richiede la registrazione dei flag di anteprima, verrà visualizzato un errore nel campo Sottoscrizione:

    Screenshot dell'errore visualizzato quando una sottoscrizione non ha flag di anteprima registrati durante la creazione di un cluster del Servizio Azure Kubernetes automatico nel portale di Azure.

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

    Screenshot della scheda Monitoraggio durante la creazione di un cluster del Servizio Azure Kubernetes automatico nel portale di Azure.

  4. Introduzione alla configurazione della prima applicazione da GitHub e alla configurazione di una pipeline di distribuzione automatizzata.

    Screenshot della scheda Introduzione nel pannello Panoramica dopo aver creato un cluster del Servizio Azure Kubernetes automatico nel portale di Azure.

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

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

  2. 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:

Screenshot dell'architettura di esempio di Azure Store.

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

  1. Creare uno spazio dei nomi aks-store-demo in cui distribuire le risorse Kubernetes.

    kubectl create ns aks-store-demo
    
  2. 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.

  1. 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
    
  2. 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
    
  3. Quando INDIRIZZO passa da in sospeso a un indirizzo IP pubblico effettivo, usare CTRL-C per arrestare il processo di controllo kubectl.

    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
    
  4. Aprire un browser web all'indirizzo IP esterno dell'ingresso per visualizzare l'applicazione di Azure Store in azione.

    Screenshot dell'applicazione di esempio dello Store del servizio Azure Kubernetes.

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.