Guida rapida: Distribuire un'applicazione in un nuovo cluster Servizio Azure Kubernetes (AKS) automatizzato da un repository di codice

Si applica a: ✔️ Servizio Azure Kubernetes Automatico

Usare le distribuzioni automatizzate per compilare e distribuire un'applicazione da un repository di codice in un cluster del servizio Azure Kubernetes Automatico nuovo o esistente. Le distribuzioni automatizzate semplificano il processo di configurazione di un flusso di lavoro GitHub Action per compilare e distribuire il codice. Dopo la connessione, ogni nuovo commit eseguito avvia la pipeline. Le distribuzioni automatizzate si basano su draft.sh. Quando si crea un nuovo flusso di lavoro di distribuzione, è possibile usare un Dockerfile esistente, generare un Dockerfile, usare manifesti Kubernetes esistenti o generare manifesti Kubernetes. I manifesti generati vengono creati tenendo presenti le procedure consigliate per la sicurezza e la resilienza. Il servizio AKS Automatic include anche un [SLA per la prontezza dei pod] 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.

Con questa guida introduttiva, si potrà:

  • Connettersi a un repository di codice.
  • Distribuire l'applicazione in un contenitore.
  • Configurare i manifesti Kubernetes.
  • Creare un cluster del Servizio Azure Kubernetes Automatico.
  • Distribuire l'applicazione tramite una richiesta pull.

Prima di iniziare

Limitazioni

  • Il sistema del pool di nodi dei cluster automatici di AKS Automatic richiede la distribuzione in aree Azure che supportano almeno tre zone di disponibilità, dischi OS effimeri e sistema operativo Linux di Azure.
  • Il servizio AKS Automatic è disponibile nelle aree seguenti: australiaeast, austriaeast, belgiumcentral, brazilsouth, canadacentral, centralindia, centralus, chilecentral, denmarkeast, eastasia, eastus, eastus2, francecentral, germanywestcentral, indonesiacentral, israelcentral, italynorth, japaneast, japanwest, koreacentral, malaysiawest, mexicocentral, newzealandnorth, northeurope, norwayeast, polandcentral, southafricanorth, southcentralus, southeastasia, spaincentral, swedencentral, switzerlandnorth, uaenorth, uksouth, westeurope, westus2, westus3.
  • Il cluster automatico AKS ha il blocco del gruppo di risorse nodo preconfigurato, che non consente modifiche al gruppo di risorse MC_, impedendo i collegamenti di rete virtuale sulla zona di DNS privato predefinita. Per scenari DNS tra reti virtuali (VNet) o DNS personalizzati, utilizzare una rete personalizzata e un DNS privato seguendo Crea un cluster privato di 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.

Aggiungere il codice sorgente dell'applicazione

Per distribuire un'applicazione da un repository di codice, iniziare dalla home page Azure portale.

Screenshot che mostra la selezione di

  1. Cercare i servizi Kubernetes nella barra di ricerca superiore.
  2. Selezionare Kubernetes services nei risultati della ricerca.
  3. Selezionare il pulsante Crea e selezionare Distribuisci applicazione.

Connettersi al repository del codice sorgente

Creare e automatizzare il flusso di lavoro di distribuzione e autorizzarlo a connettersi al repository del codice sorgente desiderato.

  1. Nella scheda Informazioni di base selezionare Distribuire l'applicazione.
  2. In Project details scegliere il Subscription, Resource Group e Region.
  3. In Repository details immettere un nome per il flusso di lavoro, quindi selezionare Authorize access per connettersi al repository di GitHub desiderato.
  4. Scegliere Repository e Ramo.
  5. Selezionare il pulsante Avanti.

Scegliere la configurazione dell'immagine del contenitore

Per preparare un'applicazione per Kubernetes, è necessario compilarla in un'immagine del contenitore e archiviata in un registro contenitori. Si usa un Dockerfile per fornire istruzioni su come compilare l'immagine del contenitore. Se il repository del codice sorgente non ha già un Dockerfile, le distribuzioni automatizzate possono generarne una automaticamente. In caso contrario, è possibile usare un Dockerfile esistente.

Usare le distribuzioni automatiche per generare un Dockerfile per molti linguaggi e framework, ad esempio Go, C#, Node.js, Python, Java, Gradle, Clojure, PHP, Ruby, Erlang, Swift e Rust. Il supporto linguistico è basato su ciò che è disponibile in draft.sh.

  1. Selezionare Distribuisci automaticamente in un contenitore (genera Dockerfile) per la configurazione del contenitore.
  2. Selezionare il percorso in cui salvare il Dockerfile generato nel repository.
  3. Scegliere l'ambiente dell'applicazione nell'elenco di linguaggi e framework supportati.
  4. Immettere la porta dell'applicazione.
  5. Selezionare un Registro Azure Container o crearne uno nuovo. Questo registro viene usato per archiviare l'immagine dell'applicazione compilata. All'identità kubelet del cluster del servizio Azure Kubernetes Automatico sono concesse le AcrPullautorizzazioni per tale registro.

Scegliere la configurazione del manifesto Kubernetes

Un'applicazione in esecuzione in Kubernetes è costituita da molti componenti primitivi Kubernetes. Questi componenti descrivono l'immagine del contenitore da usare, il numero di repliche da eseguire, se è necessario un indirizzo IP pubblico per esporre l'applicazione e così via. Per altre informazioni, vedere la documentazione ufficiale di Kubernetes. Se il repository del codice sorgente non dispone già dei manifesti Kubernetes di base da distribuire, le distribuzioni automatizzate possono generarle automaticamente. In caso contrario, è possibile usare un set di manifesti esistenti. È anche possibile scegliere un grafico Helm esistente.

Usare le distribuzioni automatiche per generare un set di file manifesto Kubernetes di base per rendere operativa l'applicazione. Al momento, le distribuzioni automatizzate creano un oggetto Deployment, Service e ConfigMap.

I manifesti generati sono progettati per applicare raccomandazioni sulle misure di sicurezza della distribuzione, ad esempio:

Per generare manifesti Kubernetes:

  1. Selezionare Genera file di distribuzione dell'applicazione per le opzioni di distribuzione.
  2. Immettere la porta dell'applicazione. Questa porta viene usata nell'elemento Service generato.
  3. Selezionare il percorso in cui salvare i manifesti Kubernetes generati nel repository.
  4. Selezionare il pulsante Avanti.

Selezionare la posizione in cui si vuole distribuire l'applicazione

Se non si ha già un cluster, è possibile creare un nuovo cluster del servizio Azure Kubernetes Automatico come parte di questa distribuzione.

  1. Selezionare Crea cluster Kubernetes automatico per la configurazione del cluster.
  2. Immettere un valore in Nome cluster.
  3. Scegliere il programma di manutenzione degli aggiornamenti automatici o lasciare selezionata l'impostazione predefinita.
  4. Immettere lo spazio dei nomi Kubernetes in cui viene distribuita l'applicazione.
  5. Scegliere il livello di monitoraggio e registrazione o lasciare selezionata l'impostazione predefinita.
  6. Selezionare il pulsante Avanti.

Esaminare la configurazione e la distribuzione

Esaminare la configurazione per il cluster, l'applicazione e i manifesti Kubernetes, quindi selezionare Distribuisci. La creazione di un cluster richiede alcuni minuti, non uscire dalla pagina di distribuzione.

Screenshot che mostra Distribuzione dell'applicazione.

  1. Viene creato un nuovo cluster del servizio Azure Kubernetes Automatico o ne è stato configurato uno esistente.
  2. Viene creato un registro contenitori o ne è configurato uno esistente con il cluster.
  3. Le credenziali federate vengono create per consentire al flusso di lavoro GitHub Azione di distribuire nel cluster.
  4. Viene creata una richiesta pull nel repository di codice con tutti i file generati e il flusso di lavoro.

Esaminare e unire una richiesta pull

Quando la distribuzione ha esito positivo, selezionare il pulsante Visualizza richiesta pull per visualizzare i dettagli della richiesta pull generata nel repository di codice.

Screenshot del pull request su GitHub.

  1. Esaminare le modifiche in File modificati e apportare le modifiche desiderate.
  2. Selezionare Unisci richiesta pull per unire le modifiche nel repository di codice.

L'unione della modifica innesca il flusso di lavoro GitHub Actions che crea l'immagine del contenitore della tua applicazione, la archivia in Registro Azure Container e la distribuisce nel cluster.

Screenshot che mostra il flusso di lavoro di GitHub Actions in corso.

Controllare le risorse distribuite

Al termine della pipeline, è possibile esaminare il Kubernetes Service creato nel portale di Azure selezionando Servizi e ingresses nel menu del servizio risorse di Kubernetes.

Screenshot del riquadro Servizi e risorse in ingresso.

Se si seleziona l'Indirizzo IP esterno, sarà visualizzata una nuova pagina del browser con l'applicazione in esecuzione.

Screenshot che mostra l'applicazione Contoso Air in esecuzione.

Eliminare risorse

Al termine dell'operazione con il cluster, è possibile eliminarlo per evitare di incorrere in addebiti Azure.

  1. Nel portale di Azure passare al gruppo di risorse.
  2. Selezionare Elimina gruppo di risorse.
  3. Immettere il nome del gruppo di risorse per confermare l'eliminazione e selezionare Elimina.
  4. Nella finestra di dialogo conferma eliminazione selezionare Elimina.

Passaggi successivi

In questa guida introduttiva è stata distribuita un'applicazione in un cluster Kubernetes usando il servizio Azure Kubernetes Automatico e si è configurata una pipeline di integrazione continua/distribuzione continua (CI/CD) da un repository di codice.

Per ulteriori informazioni sul servizio Azure Kubernetes automatico, continuare con l'introduzione.