Torna al blog

Distribuzione di applicazioni su Kubernetes utilizzando Argo CD e GitOps

Distribuzione di applicazioni su Kubernetes utilizzando Argo CD e GitOps

Introduzione

Kubernetes è diventato uno standard per il deployment di grandi applicazioni. Aiuta gli sviluppatori a ottenere vantaggi significativi e offre funzionalità che non sono disponibili nell'hosting di server tradizionale. Kubernetes consente la scalabilità orizzontale senza il fastidio dell'infrastruttura. Inoltre, riduce i costi di acquisizione e manutenzione dell'infrastruttura man mano che l'applicazione cresce.

Tuttavia, la gestione delle applicazioni su Kubernetes può anche essere complessa e richiede competenze avanzate. Il deployment delle applicazioni utilizzando Kubernetes e il Continuous Integration e Continuous Deployment processo (CI/CD) aiuta a superare questo processo complesso fornendo astrazione. GitOps è uno degli strumenti che può aiutare a ottenere l'astrazione.

In questo tutorial, mostreremo come utilizzare Argo CD per integrare ed eseguire il deployment continuo di applicazioni su Kubernetes. Ogni volta che viene effettuato il push di una modifica nel repository, questa viene distribuita sul cluster di destinazione. Argo CD fornisce anche il controllo delle versioni, le configurazioni e gli ambienti applicativi integrandoli con l'intero ciclo di vita dello sviluppo software. Se disponi di package manager per Kubernetes come Helm, o se il tuo repository è ospitato su BitBucket o GitLab, anche Argo CD può integrarsi perfettamente con tutte queste piattaforme.

Prerequisiti

Per completare questo tutorial, è necessario disporre di:

Passo 1 – Installare Argo CD

Prima di poter installare Argo CD, dobbiamo avere un ambiente Kubernetes in esecuzione con kubectl. Puoi verificarlo eseguendo il comando seguente:

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Nodes

Dovresti vedere almeno un nodo Kubernetes in esecuzione nello stato Ready. Se non ci sono nodi disponibili, dovresti ricontrollare l'installazione di Kubernetes. Successivamente, creeremo un namespace separato per la nostra installazione di Kubernetes. Chiamiamolo argocd. Manterremo i servizi relativi ad Argo CD in questo namespace:

Dopodiché, installa gli script di Argo CD nel namespace appena creato sopra eseguendo il comando seguente:

Deploying Applications on Kubernetes Using Argo CD and GitOps Install ArgoCD

Per verificare lo stato dei pod Kubernetes, esegui il comando seguente:

Otterrai un risultato simile al seguente:

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Pods

Qui hai concluso con successo l'installazione di Argo CD. Per uscire dall'interfaccia watch, puoi premere Ctrl + C. Per accedere ai servizi in questo cluster Kubernetes, dovremo inoltrare le porte. Ti mostreremo come farlo nel prossimo passo.

Passo 2 – Inoltrare le porte per accedere ad Argo CD

Kubernetes può distribuire la tua applicazione su qualsiasi porta di sua scelta. Pertanto, è necessario inoltrare le porte dell'applicazione Kubernetes per accedervi dalla macchina locale. Argo CD espone un servizio chiamato argocd-server che utilizza la porta 443. La porta 443 è la porta predefinita per i servizi HTTPS e HTTP. Puoi inoltrare le porte di Kubernetes a una porta di tua scelta. Nel nostro esempio seguente, abbiamo inoltrato la porta a 8080. Per inoltrare le porte, esegui il comando seguente nel terminale:

Una volta inoltrata la porta, questa verrà bloccata in modo che gli altri servizi non possano accedervi. Per avere un accesso ininterrotto, si consiglia sempre di eseguire il comando sopra menzionato in un nuovo terminale. Una volta terminato, puoi premere Ctrl+C per uscire dal processo di port forwarding.

Dopo aver inoltrato la porta, puoi navigare su Argo CD andando su localhost:8080. Ti verranno chieste le credenziali che potrai ottenere dalla riga di comando nel passaggio successivo.

Passo 3 – Gestire Argo CD dalla riga di comando

Dobbiamo installare la riga di comando di Argo CD per gestire l'installazione di Argo CD. Il modo consigliato per installare Argo CD è utilizzare un gestore di pacchetti come Homebrew. Homebrew è un popolare strumento di gestione dei pacchetti per l'installazione su macOS e Linux. Puoi installare Homebrew usando il comando seguente:

Dovresti avere brew installato sulla tua macchina. Potrebbe apparire una richiesta di password per l'accesso. Puoi eseguirlo eseguendo il comando seguente:

Otterrai il comando argocd dopo l'installazione sopra descritta. Dovremo recuperare la password di amministratore usando il comando kubectl . È stata generata automaticamente durante l'installazione. Di seguito è riportato il comando per acquisirla:

Ora che hai installato Argo CD, puoi accedere utilizzando il comando argocd login qui sotto:

Dovrai effettuare l'accesso per distribuire l'applicazione quando utilizzi la riga di comando:

Applications

Potresti ricevere un avviso di sicurezza. In tal caso, premi y per procedere. Molti utenti potrebbero voler cambiare la password una volta effettuato l'accesso. In tal caso, esegui il comando argocd account update-password per cambiare la password. Ora abbiamo una configurazione di Argo CD completamente funzionante.

Infine, distribuiremo un'applicazione sul cluster Kubernetes utilizzando l'Argo CD installato.

Passo 4 – Utilizzare cluster multipli

Prima di continuare con la configurazione della tua applicazione, è necessario conoscere la macchina di destinazione in cui desideri distribuirla. Per molti scenari, Argo CD e l'applicazione distribuita possono essere eseguiti sullo stesso cluster. Questo è il comportamento predefinito di Argo CD, ma non è un limite. Se desideri distribuire l'applicazione su altre macchine di destinazione, esegui prima il comando kubectl config sulla tua macchina:

Supponiamo che tu ottenga due cluster: test-deploy-cluster e test-target-cluster. Ora, se il test-deploy-cluster è dove si trova il tuo Argo CD e desideri distribuire su test-target-cluster, esegui il comando seguente:

Il comando precedente aggiungerà i dettagli del cluster aggiuntivo su Argo CD. Consentirà inoltre di distribuire servizi sul cluster di destinazione di Argo CD.

Passo 5 – Distribuire un'applicazione di esempio

È finalmente giunto il momento di distribuire le applicazioni sul cluster Kubernetes. Utilizzeremo le applicazioni di esempio fornite da Argo CD. Utilizzeremo anche il helm-guestbook creato utilizzando i chart Helm.

Per installare l'applicazione, utilizzeremo il comando argo app create . Specificheremo il repository Git, helm-guestbook , passando la destinazione e il namespace predefiniti:

Puoi verificare lo stato dell'applicazione appena creata eseguendo il comando argocd app get:

Non stupirti se vedi OutOfSync lo stato. Fino ad ora abbiamo scaricato l’Helm chart e creato un punto di ingresso per esso per Argo CD. Tuttavia, sul lato Kubernetes, non c’è alcuna risorsa allocata ad esso. Per sincronizzare questa applicazione, esegui il comando seguente:

Deploying Applications on Kubernetes Using Argo CD and GitOps App Sync

Quando si lavora con GitOps, è sempre necessario sincronizzare l’applicazione con l’upstream. Di conseguenza, ogni volta che si verifica una modifica nel repository, Argo CD distribuisce l’applicazione.

Abbiamo distribuito l’applicazione utilizzando la riga di comando di Argo CD. È possibile ottenere lo stesso risultato utilizzando l’interfaccia web di Argo CD. L’interfaccia web è molto utile se si desidera verificare lo stato e il funzionamento dell’applicazione. Per aprire l’interfaccia web, apri localhost:8080:

Deploying Applications on Kubernetes Using Argo CD and GitOps Application UI

Per verificare l’installazione, apriremo l’applicazione nel browser. Il nostro helm-guestbook è in esecuzione sulla porta 80. Se hai un’altra applicazione che utilizza la porta 80, puoi inoltrare la porta in modo che le altre applicazioni non vengano interrotte:

Infine, apri l’url localhost:9090 sul tuo browser web per vedere la tua applicazione in esecuzione:

 Guestbook UI

Ora, se uno sviluppatore invia del codice al repository remoto di GitHub, ArgoCD lo rileverà e lo applicherà. I tuoi deployment di ArgoCD verranno aggiornati di conseguenza, garantendo una disponibilità continua.

Conclusione

In questo tutorial, ti abbiamo mostrato come installare e distribuire applicazioni su Kubernetes utilizzando Argo CD. È importante assicurarsi che i tuoi deployment su Kubernetes siano gestibili. GitOps potrebbe aiutarti molto in questo senso.

Kubernetes è ormai lo standard per i deployment sul cloud. CloudSigma offre ottimi tutorial su Kubernetes che puoi consultare successivamente:

Buon computing!

author

Preslav Dobrev

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.