Déploiement d’applications dans Kubernetes avec Argo CD pour les débutants

Déployer des applications dans Kubernetes peut être complexe, surtout pour les débutants. Voici Argo CD, un outil déclaratif propulsé par GitOps conçu pour automatiser les déploiements d’applications Kubernetes. Dans cet atelier, vous apprendrez à configurer et à utiliser Argo CD pour déployer des applications sans heurts, avec une approche étape par étape conçue pour les débutants complets.

Ce que vous apprendrez

  • Installer et configurer Argo CD.
  • Déployer des applications en utilisant les principes GitOps.
  • Surveiller les déploiements et résoudre les problèmes.
  • Revenir en arrière et gérer les versions des applications.
  • Sécuriser Argo CD pour une utilisation en production.

Pourquoi Argo CD ?

Argo CD simplifie la gestion des applications dans Kubernetes en synchronisant en permanence votre cluster avec des manifests définis dans des référentiels Git. Les avantages incluent :

  • Gestion déclarative : Définir l’état désiré du cluster dans Git.
  • Livraison continue : Automatiser les déploiements avec une synchronisation en temps réel.
  • Contrôle de version : Revenir facilement à des versions précédentes.

Conditions préalables

Avant de commencer, assurez-vous d’avoir :

  1. Un cluster Kubernetes (utilisez Minikube, Kind, ou un service géré comme GKE, EKS, AKS).
  2. kubectl installé et configuré pour se connecter à votre cluster.
  3. Un compte GitHub ou GitLab pour héberger vos manifestes Kubernetes.
  4. Une connaissance de base de la syntaxe YAML (abordée dans cet atelier si vous êtes novice).

Guide étape par étape

1. Configuration d’un cluster Kubernetes

Étape 1 : Installer Minikube

Si vous n’avez pas de cluster, utilisez Minikube:

Shell

 

Étape 2 : Démarrer Minikube

Exécutez la commande minikube start après avoir installé Minikube sur votre système :

Shell

 

Étape 3 : Vérifier le cluster

Confirmez que le cluster fonctionne :

Shell

 

2. Installation d’Argo CD

Étape 1 : Créer un espace de noms

Argo CD s’exécute dans son propre espace de noms pour l’isolation :

Shell

 

Étape 2 : Installer Argo CD

Appliquez les manifestes officiels pour installer Argo CD :

Shell

 

Étape 3 : Vérifier l’installation

Vérifiez les pods Argo CD :

Shell

 

3. Accéder à l’interface utilisateur Argo CD

Étape 1 : Exposer Argo CD

Exposez le argocd-server sur votre machine locale :

Shell

 

Étape 2: Récupérer les identifiants d’administration

Récupérer le mot de passe d’administration par défaut:

Shell

 

Étape 3: Connexion à l’interface utilisateur

  1. Ouvrez https://localhost:8080 dans votre navigateur.
  2. Connectez-vous avec :
    • Nom d’utilisateur : admin
    • Mot de passe : Récupéré à l’étape précédente.

4. Connecter Argo CD à votre référentiel Git

Étape 1: Préparer un référentiel Git

  1. Créez un référentiel Git (par exemple, sur GitHub).
  2. Ajoutez vos manifestes Kubernetes au référentiel. Utilisez ce deployment.yaml d’exemple :
YAML

 

Étape 2: Ajouter le référentiel à Argo CD

Depuis l’interface utilisateur :

  1. Accédez à Paramètres > Référentiels.
  2. Ajoutez l’URL de votre référentiel Git et les détails d’authentification (SSH ou HTTPS).

Ou utilisez l’interface de ligne de commande :

Shell

 

5. Déployer votre première application

Étape 1: Créer une application

Dans l’interface utilisateur Argo CD :

  1. Cliquez sur Nouvelle app.
    • Nom de l’application: nginx-app
    • Projet: par défaut
    • URL du dépôt: Votre URL de dépôt Git
    • Chemin: Chemin vers deployment.yaml
    • URL du cluster: https://kubernetes.default.svc
    • Espace de noms: par défaut

Étape 2 : Synchroniser l’application

Après avoir créé l’application:

  1. Cliquez sur Synchroniser dans l’interface utilisateur d’Argo CD.
  2. Observez le déploiement de l’application sur votre cluster Kubernetes.

6. Automatiser les déploiements

Étape 1 : Activer la synchronisation automatique

Activer la synchronisation continue:

Shell

 

Étape 2 : Tester les modifications

  1. Modifiez le deployment.yaml dans Git.
  2. Envoyez les modifications au dépôt.
  3. Argo CD détectera les modifications et les synchronisera automatiquement sur le cluster.

7. Surveillance et dépannage

Étape 1 : Surveiller la santé de l’application

Dans l’interface utilisateur, vérifiez :

  • Santé : Indique si l’application fonctionne comme prévu.
  • État de synchronisation : Assure que l’état du cluster correspond à Git.

Étape 2 : Afficher les journaux

En cas de problème :

Shell

 

Étape 3 : Annuler les modifications

Revenir à un état antérieur :

Shell

 

8. Sécuriser Argo CD

Étape 1 : Changer le mot de passe administrateur par défaut

Changer le mot de passe administrateur par défaut en utilisant la commande argocd account update-password :

Shell

 

Étape 2 : Intégrer le SSO

Pour les environnements de production, intégrez des solutions de connexion unique (SSO) telles que GitHub ou LDAP.

Meilleures pratiques GitOps

  1. Stratégies de branches : Utilisez des branches distinctes pour le développement, la mise en scène et la production.
  2. Examens de code : Appliquez des examens par les pairs pour les modifications de manifestes.
  3. Journaux d’audit : Passez régulièrement en revue les journaux d’Argo CD pour la conformité et le débogage.

Conclusion

Argo CD offre une manière conviviale mais puissante de gérer les déploiements Kubernetes en utilisant les principes GitOps. Cet atelier vous équipe des compétences nécessaires pour déployer, surveiller et gérer efficacement des applications. En respectant ces pratiques, vous êtes bien parti pour maîtriser la livraison continue de Kubernetes.

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