Condividi tramite


Guida introduttiva: Creare un cluster automatizzato di Servizio Azure Kubernetes (AKS)

Si applica a: ✔️ AKS Automatico

Servizio Azure Kubernetes (AKS) Automatic è un'esperienza Kubernetes gestita che automatizza la configurazione e le operazioni del cluster del servizio Azure Kubernetes e incorpora le configurazioni delle procedure consigliate. Il servizio AKS Automatic include anche un [SLA per la prontezza dei pod][azure-sla] che garantisce il 99,9% delle operazioni di prontezza dei pod qualificate completate entro 5 minuti, garantendo un'infrastruttura affidabile e auto-riparante per le applicazioni. In questa guida introduttiva si apprende come:

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

Prima di iniziare

  • interfaccia della riga di comando di Azure versione 2.77.0 o successiva. Trova la versione usando il comando az --version. Per installare o aggiornare, vedere Installare interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.
  • Se sono presenti più sottoscrizioni Azure, selezionare l'ID sottoscrizione appropriato per fatturare le risorse usando il comando az account set.
  • Per distribuire un file Bicep, è necessario l'accesso in scrittura alle risorse create e accedere a tutte le operazioni sul tipo di risorsa Microsoft.Resources/deployments. Ad esempio, per creare una macchina virtuale (VM), sono necessarie autorizzazioni /Microsoft.Compute/virtualMachines/write e Microsoft.Resources/deployments/*. Per un elenco di ruoli e autorizzazioni, vedere Azure ruoli predefiniti.

Limitazioni

  • Il sistema del pool di nodi dei cluster automatici di AKS richiede la distribuzione in aree Azure che supportano almeno tre zone di disponibilità, dischi OS effimeri e sistema operativo Azure Linux.
  • È possibile creare cluster del servizio Azure Kubernetes automatico solo nelle aree in cui Integrazione rete virtuale per il server API è disponibile a livello generale.
  • Il cluster automatico AKS ha lockdown del gruppo di risorse nodo preconfigurato, il che non consente modifiche al gruppo di risorse MC_, impedendo i collegamenti rete virtuale (VNet) nella zona DNS privato predefinita. Per scenari DNS tra VNet o scenari DNS personalizzati, usare BYO VNET e BYO DNS privato seguendo il documento 'Creare un cluster privato Servizio Azure Kubernetes (AKS) Automatico in una rete virtuale personalizzata'.

Importante

Il servizio Azure Kubernetes automatico tenta di selezionare dinamicamente una dimensione della macchina virtuale per il pool di nodi system in base alla capacità disponibile nella sottoscrizione. Assicurarsi che la sottoscrizione abbia una quota per 16 vCPU di una delle dimensioni seguenti nell'area in cui si distribuisce il cluster: Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2, Standard_DS12_v2, Standard_D4alds_v6, Standard_D4lds_v6 o Standard_D4alds_v5. È possibile visualizzare le quote per famiglie di macchine virtuali specifiche e inviare richieste di aumento della quota tramite il portale di Azure. Per altre domande, vedere la documentazione sulla risoluzione dei problemi.

Creare un gruppo di risorse

Un gruppo di risorse Azure è un gruppo logico in cui Azure risorse vengono distribuite e gestite.

Creare un gruppo di risorse usando il comando az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella posizione eastus:

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

Crea un cluster AKS automatico usando il comando az aks create con il parametro --sku impostato su automatic. L'esempio seguente crea un cluster denominato myAKSAutomaticCluster con Managed Prometheus e l'integrazione di 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.

Creare un cluster Kubernetes automatico

  1. Per creare un cluster AKS Automatico, cercare e selezionare Servizi Kubernetes. Questo ti porta alla pagina centro Kubernetes (anteprima).

  2. Nella pagina Centro Kubernetes (anteprima), fare clic su Crea>Cluster Kubernetes automatico.

    Screenshot del pulsante Crea cluster automatico AKS nel portale di Azure.

  3. Nella scheda Informazioni di base compilare tutti i campi obbligatori (sottoscrizione, gruppo di risorse, nome del cluster Kubernetes e Area) e quindi selezionare Avanti.

    Screenshot della scheda Crea - Informazioni di base per un cluster AKS Automatico nel portale di Azure.

  4. Nella scheda Monitoraggio, selezionare le configurazioni di monitoraggio desiderate da Monitoraggio di Azure (Container Insights), Dashboard Grafana gestite, Osservabilità della rete dei contenitori (ACNS) e Avvisi, e quindi selezionare Avanti.

    Screenshot della scheda Monitoraggio durante la creazione di un cluster automatico AKS nel portale di Azure.

  5. Nella scheda Advanced selezionare le configurazioni avanzate Desiderate Accesso privato, Azure Rete virtuale, Identità gestita, Sicurezza di rete del contenitore e Spazi dei nomi Kubernetes gestiti e quindi selezionare Review + create.

    Screenshot della scheda Avanzate durante creazione di un cluster AKS automatico nel portale di Azure.

  6. Esaminare le configurazioni nella scheda Rivedi e crea e quindi selezionare Crea per distribuire il cluster AKS automatico.

  7. Iniziare a configurare la prima applicazione da GitHub e configurare una pipeline di distribuzione automatizzata.

    Screenshot della scheda Introduzione nel pannello Panoramica dopo la creazione di un cluster Azure Kubernetes automatico nel portale di Azure.

Esaminare il file Bicep

Il file Bicep seguente definisce un cluster AKS Automatico.

@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 di Bicep, consultare il riferimento Microsoft.ContainerService/managedClusters.

Distribuire il file Bicep

  1. Salvare il file di 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 usando il comando [az deployment group create][az-deployment-group-create].

    az deployment group create --resource-group myResourceGroup --template-file main.bicep
    

    La creazione del cluster del servizio Azure Kubernetes richiede alcuni minuti. Attendere il completamento della distribuzione del cluster prima di procedere al passaggio successivo.

Connettersi 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. È possibile eseguire l'installazione kubectl in locale usando il az aks install-cli comando . I cluster automatici di AKS sono configurati con Microsoft Entra ID per il controllo degli accessi basato sui ruoli (RBAC) di Kubernetes.

Annotazioni

Quando si crea un cluster usando l'interfaccia della riga di comando di Azure, all'utente vengono assegnati ruoli predefiniti per servizio Azure Kubernetes RBAC Cluster Admin.

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

    az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster
    
  2. 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 richiesto 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-12345678-vmss000000   Ready    agent   2m26s   v1.28.5
    aks-nodepool1-12345678-vmss000001   Ready    agent   2m26s   v1.28.5
    aks-nodepool1-12345678-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 AKS Store. 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.

Annotazioni

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 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 applynello spazio dei nomi aks-store-demo. Il file YAML che definisce la distribuzione è 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

Durante l'esecuzione dell'applicazione, un servizio Kubernetes espone il front-end dell'applicazione a Internet. Il processo potrebbe 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 utilizzando 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 Web browser all'indirizzo IP esterno del proprio ingress per vedere l'app Azure Store in azione.

    Screenshot dell'applicazione di esempio di AKS Store.

Eliminare il cluster

Se non si prevede di eseguire l'esercitazione AKS, pulire le risorse non necessarie per evitare addebiti Azure.

Rimuovere il gruppo di risorse, il servizio contenitore e tutte le risorse correlate usando il comando az group delete.

az group delete --name myResourceGroup --yes --no-wait

Annotazioni

Il cluster AKS è stato creato con un'identità gestita assegnata dal sistema, che rappresenta l'opzione predefinita per l'identità utilizzata in questa guida rapida. Questa identità è gestita dalla piattaforma, pertanto non è necessario rimuoverla manualmente.

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 altre informazioni sul servizio Azure Kubernetes automatico, vedere Introduzione a Servizio Azure Kubernetes (AKS) Automatico