Distribuzione di Applicazioni in Kubernetes con Argo CD per Principianti

Distribuire applicazioni in Kubernetes può essere complesso, specialmente per i neofiti. Entra in gioco Argo CD, uno strumento dichiarativo alimentato da GitOps progettato per automatizzare i deployment delle applicazioni in Kubernetes. In questo workshop, imparerai come configurare e utilizzare Argo CD per distribuire applicazioni senza soluzione di continuità, con un percorso passo-passo creato per i principianti completi.

Cosa Imparerai

  • Installare e configurare Argo CD.
  • Distribuire applicazioni utilizzando i principi di GitOps.
  • Monitorare i deployment e risolvere problemi.
  • Ripristinare e gestire le versioni delle applicazioni.
  • Proteggere Argo CD per l’uso in produzione.

Perché Argo CD?

Argo CD semplifica la gestione delle applicazioni in Kubernetes mantenendo continuamente sincronizzato il tuo cluster con i manifesti definiti nei repository Git. I vantaggi includono:

  • Gestione Dichiarativa : Definisci lo stato desiderato del cluster in Git.
  • Consegna Continua : Automatizza i deployment con sincronizzazione in tempo reale.
  • Controllo Versioni : Ripristina facilmente versioni precedenti.

Prerequisiti

Prima di iniziare, assicurati di avere:

  1. Un cluster Kubernetes (usa Minikube, Kind o un servizio gestito come GKE, EKS, AKS).
  2. kubectl installato e configurato per connettersi al tuo cluster.
  3. Un account GitHub o GitLab per ospitare i tuoi manifesti Kubernetes.
  4. Una familiarità di base con la sintassi YAML (trattata in questo workshop se sei nuovo).

Guida passo-passo

1. Configurare un Cluster Kubernetes

Passaggio 1: Installa Minikube

Se non hai un cluster, utilizza Minikube:

Shell

 

Passaggio 2: Avvia Minikube

Esegui il comando minikube start dopo aver installato Minikube sul tuo sistema:

Shell

 

Passaggio 3: Verifica il Cluster

Conferma che il cluster sia in esecuzione:

Shell

 

2. Installare Argo CD

Passaggio 1: Crea il Namespace

Argo CD viene eseguito nel proprio namespace per l’isolamento:

Shell

 

Passaggio 2: Installa Argo CD

Applica i manifest ufficiali per installare Argo CD:

Shell

 

Passaggio 3: Verifica l’Installazione

Verifica i pod di Argo CD:

Shell

 

3. Accedere all’interfaccia utente di Argo CD

Passaggio 1: Esporre Argo CD

Esponi il argocd-server al tuo computer locale:

Shell

 

Passo 2: Recupera le credenziali di amministrazione

Ottieni la password di amministrazione predefinita:

Shell

 

Passo 3: Accedi all’interfaccia utente

  1. Apri https://localhost:8080 nel tuo browser.
  2. Accedi con:
    • Nome utente: admin
    • Password: Recuperato nel passaggio precedente.

4. Collegamento di Argo CD al tuo repository Git

Passo 1: Prepara un repository Git

  1. Crea un repository Git (ad esempio, su GitHub).
  2. Aggiungi i manifest di Kubernetes al repository. Utilizza questo esempio di deployment.yaml:
YAML

 

Passo 2: Aggiungi il repository ad Argo CD

Dall’interfaccia utente:

  1. Vai su Impostazioni > Repository.
  2. Aggiungi l’URL del tuo repository Git e i dettagli di autenticazione (SSH o HTTPS).

Oppure, utilizza la CLI:

Shell

 

5. Distribuzione della tua prima applicazione

Passo 1: Crea un’applicazione

Nell’interfaccia utente di Argo CD:

  1. Clicca su Nuova App.
    • Nome dell’app: nginx-app
    • Progetto: default
    • URL del repository: L’URL del tuo repository Git
    • Percorso: Percorso a deployment.yaml
    • URL del cluster: https://kubernetes.default.svc
    • Namespace: default

Passo 2: Sincronizza l’applicazione

Dopo aver creato l’app:

  1. Clicca su Sincronizza nell’interfaccia di Argo CD.
  2. Guarda mentre l’app viene distribuita nel tuo cluster Kubernetes.

6. Automazione delle distribuzioni

Passo 1: Abilita Auto-Sync

Abilita la sincronizzazione continua:

Shell

 

Passo 2: Testa le modifiche

  1. Modifica il deployment.yaml in Git.
  2. Pusha le modifiche nel repository.
  3. Argo CD rileverà le modifiche e le sincronizzerà automaticamente con il cluster.

7. Monitoraggio e risoluzione dei problemi

Passo 1: Monitora la salute dell’applicazione

Nell’interfaccia, controlla:

  • Salute: Indica se l’applicazione sta funzionando come previsto.
  • Stato di Sincronizzazione: Garantisce che lo stato del cluster corrisponda a Git.

Passo 2: Visualizza i Log

Se qualcosa va storto:

Shell

 

Passo 3: Ripristina le Modifiche

Ripristina a uno stato precedente:

Shell

 

8. Sicurezza di Argo CD

Passo 1: Cambia la Password Amministratore di Default

Cambia la password amministratore di default utilizzando il comando argocd account update-password:

Shell

 

Passo 2: Integra SSO

Per ambienti di produzione, integra con soluzioni di Single Sign-On (SSO) come GitHub o LDAP.

Best Practices di GitOps

  1. Strategie di Branch: Usa branch separati per sviluppo, staging e produzione.
  2. Revisioni del Codice: Applica revisioni tra pari per modifiche ai manifesti.
  3. Log di Audit: Rivedi regolarmente i log di Argo CD per conformità e debugging.

Conclusione

Argo CD offre un modo potente ma accessibile per gestire le distribuzioni Kubernetes utilizzando i principi di GitOps. Questo workshop ti fornisce le competenze per distribuire, monitorare e gestire le applicazioni in modo efficiente. Seguendo queste pratiche, sei sulla buona strada per padroneggiare la consegna continua di Kubernetes.

Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd