Condividi tramite


Avvio rapido: Creare un cluster del servizio Azure Kubernetes automatico

Si applica a: ✔️ AKS Automatico

Il servizio Azure Kubernetes Automatico è un'esperienza Kubernetes gestita che automatizza la configurazione e le operazioni del cluster del servizio Azure Kubernetes e incorpora le configurazioni delle procedure consigliate. 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

  • Azure CLI versione 2.77.0 o successiva. Trova la versione usando il comando az --version. Per installare o aggiornare, vedere Installare Azure CLI. Se si sta usando Azure Cloud Shell, la versione più recente è già installata.
  • Se sono presenti più sottoscrizioni di Azure, selezionare l'ID sottoscrizione appropriato per fatturare le risorse usando il az account set comando .
  • 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 (VM), 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.

Limitazioni

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 specifiche famiglie di macchine virtuali e inviare richieste di aumento delle quote tramite il portale di Azure. Per altre domande, vedere la documentazione sulla risoluzione dei problemi.

Creare un gruppo di risorse

Un gruppo di risorse di Azure è un gruppo logico in cui le risorse di Azure 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.

    La screenshot del pulsante Crea cluster AKS automatico 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 del Servizio Azure Kubernetes automatico nel portale di Azure.

  4. Nella scheda Monitoraggio selezionare le configurazioni di monitoraggio desiderate da Monitoraggio di Azure (Container Insights), Managed Prometheus, Grafana Dashboards, Container Network Observability (ACNS) e Avvisi e quindi selezionare Avanti.

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

  5. Nella scheda Avanzate selezionare le configurazioni avanzate Desiderate Accesso privato, Rete virtuale di Azure, Identità gestita, Sicurezza di rete contenitore (ACNS) e Spazi dei nomi Kubernetes gestiti e quindi selezionare Rivedi e crea.

    Screenshot della scheda Avanzati durante la creazione di un cluster del Servizio Azure Kubernetes 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. 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.

Esaminare il file Bicep

Il file Bicep seguente definisce un cluster AKS Auto:

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

Implementazione del 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 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 del Servizio Azure Kubernetes automatico sono configurati con Microsoft Entra ID per il controllo degli accessi in base al ruolo (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 Azure Kubernetes Service 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, utilizzare 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 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 applynello 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

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 dell'ingresso per visualizzare l'applicazione di Archivio di Azure in azione.

    Screenshot dell'applicazione di esempio di AKS Store.

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.

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 al servizio Azure Kubernetes automatico