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

Importante

A partire da AKS 1.36, i nuovi cluster AKS Automatic abiliteranno per impostazione predefinita Kubernetes Gateway API tramite il componente aggiuntivo per il routing dell'applicazione anziché l'ingresso NGINX gestito con il componente aggiuntivo per il routing dell'applicazione, a causa del ritiro upstream di Ingress NGINX.

I cluster automatici esistenti non sono interessati, ma devono iniziare la migrazione all'API del gateway Kubernetes tramite il componente aggiuntivo di routing dell'applicazione.

Limitazioni

Le seguenti limitazioni si applicano ai cluster automatici di AKS:

  • AKS Automatic è generalmente disponibile nelle seguenti regioni: 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.
    • Per impostazione predefinita, i nuovi cluster automatici di AKS abilitano i pool di nodi di sistema gestiti e LocalDNS. Non è possibile creare cluster automatici di AKS senza pool di nodi di sistema gestiti in nessuna regione.
  • Il cluster Automatico di AKS ha il blocco del gruppo di risorse del nodo preconfigurato, che non consente modifiche al gruppo di risorse MC_, impedendo i collegamenti alla rete virtuale nella zona 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.
  • interfaccia della riga di comando di Azure è necessaria la versione 2.86.0 o successiva. Per trovare la versione, eseguire az --version il comando . Se è necessario installare o aggiornare, vedere Installare interfaccia della riga di comando di Azure.
  • Le estensioni seguenti non sono supportate:
  • I nodi Di Windows non sono supportati.
  • Il componente aggiuntivo basato su Istio per il service mesh di AKS (Azure Kubernetes Service) non è supportato.
  • La migrazione tra lo SKU Base di AKS e lo SKU Automatico non è supportata.
  • Le migrazioni tra cluster automatici del servizio Azure Kubernetes senza pool di nodi di sistema gestiti e cluster automatici del servizio Azure Kubernetes con pool di nodi di sistema gestiti non sono supportate.
  • La configurazione dello scraping personalizzato delle metriche e dellaraccolta di log di Prometheus non è supportata.
  • L'abilitazione dell'osservabilità ACNS durante la creazione automatica del cluster non è supportata. È possibile abilitare l'osservabilità ACNS dopo la creazione del cluster.

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.