Introduction
Kubernetes est devenu un standard pour le déploiement de grandes applications. Il aide les développeurs à obtenir des avantages significatifs et offre des fonctionnalités qui ne sont pas disponibles dans l'hébergement de serveurs traditionnel. Kubernetes permet une mise à l'échelle horizontale sans les tracas de l'infrastructure. De plus, il réduit le coût d'acquisition et de maintenance de l'infrastructure à mesure que l'application grandit.
Cependant, la gestion des applications sur Kubernetes peut également être complexe et nécessite des compétences avancées. Le déploiement d'applications à l'aide de Kubernetes et du processus d'Intégration continue et de déploiement continu (CI/CD) aide à surmonter ce processus complexe en fournissant une abstraction. GitOps est l'un des outils qui peut aider à réaliser cette abstraction.
Dans ce tutoriel, nous allons vous montrer comment utiliser Argo CD pour intégrer et déployer en continu des applications sur Kubernetes. Chaque fois qu'un changement est poussé vers le dépôt, il est déployé sur le cluster cible. Argo CD fournit également des contrôles de version, des configurations et des environnements d'application en s'intégrant à l'ensemble du cycle de vie du développement logiciel. Si vous disposez de gestionnaires de paquets pour Kubernetes tels que Helm, ou si votre dépôt est hébergé sur BitBucket ou GitLab, Argo CD peut également s'intégrer de manière transparente à toutes ces plateformes.
Prérequis
Pour suivre ce tutoriel, vous devez disposer de :
-
Clés SSH sur votre machine. Si vous n'avez pas de paire de clés SSH fonctionnant sous Linux/MacOS/BSD, vous pouvez en créer une en suivant notre tutoriel Aperçu de SSH – Serveurs, clients et clés SSH.
-
Vous aurez également besoin d'un cluster Kubernetes en cours d'exécution. De plus, vous devriez avoir kubectl en cours d'exécution sur votre machine. Si vous n'avez pas de cluster Kubernetes, vous pouvez suivre Comment créer un cluster Kubernetes à l'aide de Kubeadm sur Ubuntu 18.04.
-
Vous devez avoir une compréhension de base des concepts de Kubernetes. Si vous souhaitez vous familiariser davantage avec Kubernetes, vous pouvez suivre Découvrir les bases de l'outil Kubernetes.
Étape 1 – Installer Argo CD
Avant de pouvoir installer Argo CD, nous devons disposer d'un environnement Kubernetes en cours d'exécution avec kubectl. Vous pouvez tester cela en exécutant la commande ci-dessous :
|
1 |
kubectl get nodes |

Vous devriez voir au moins un nœud Kubernetes en cours d'exécution avec le statut Ready. S'il n'y a aucun nœud disponible, vous devez revérifier votre installation de Kubernetes. Ensuite, nous allons créer un namespace distinct pour notre installation Kubernetes. Appelons-le argocd. Nous conserverons le service lié à Argo CD dans ce namespace :
|
1 |
kubectl create namespace argocd |
Après cela, installez les scripts Argo CD dans le namespace nouvellement créé ci-dessus en exécutant la commande ci-dessous :
|
1 |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml |

Pour vérifier le statut des pods Kubernetes, exécutez la commande ci-dessous :
|
1 |
watch kubectl get pods -n argocd |
Vous obtiendrez un résultat comme ci-dessous :

Ici, vous avez terminé avec succès l'installation d'Argo CD. Pour quitter l'interface watch, vous pouvez appuyer sur Ctrl + C. Pour accéder aux services de ce cluster Kubernetes, nous devrons rediriger les ports. Nous allons vous montrer comment faire cela à l'étape suivante.
Étape 2 – Rediriger les ports pour accéder à Argo CD
Kubernetes peut déployer votre application sur n'importe quel port de son choix. Par conséquent, il est nécessaire de rediriger les ports de l'application Kubernetes pour y accéder depuis la machine locale. Argo CD expose un service appelé argocd-server qui utilise le port 443. Le port 443 est le port par défaut pour les services HTTPS et HTTP. Vous pouvez rediriger les ports Kubernetes vers le port de votre choix. Dans notre exemple ci-dessous, nous avons redirigé le port vers 8080. Pour rediriger les ports, exécutez la commande ci-dessous dans le terminal :
|
1 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 |
Une fois que vous aurez redirigé le port, il sera bloqué afin que les autres services ne puissent pas y accéder. Pour un accès ininterrompu, il est toujours recommandé d'exécuter la commande mentionnée ci-dessus dans un nouveau terminal. Une fois terminé, vous pouvez appuyer sur Ctrl+C pour quitter le processus de redirection de port.
Après avoir redirigé le port, vous pouvez naviguer vers Argo CD en vous rendant sur localhost:8080. Vous serez invité à saisir les identifiants que vous pouvez obtenir à partir de la ligne de commande à l'étape suivante.
Étape 3 – Gérer Argo CD depuis la ligne de commande
Nous devons installer l'interface de ligne de commande Argo CD pour gérer l'installation d'Argo CD. La méthode recommandée pour installer Argo CD est d'utiliser un gestionnaire de paquets tel que Homebrew. Homebrew est un gestionnaire de paquets populaire pour une installation sur macOS et Linux. Vous pouvez installer Homebrew à l'aide de la commande ci-dessous :
|
1 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
Vous devriez avoir brew installé sur votre machine. Une invite de mot de passe peut apparaître pour la connexion. Vous pouvez l'exécuter en lançant la commande ci-dessous :
|
1 |
brew install argocd |
Vous obtiendrez la commande argocd après l'installation ci-dessus. Nous devrons récupérer le mot de passe administrateur à l'aide de la commande kubectl . Il a été généré automatiquement lors de l'installation. Voici la commande pour l'obtenir :
|
1 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo |
Maintenant que vous avez installé Argo CD, vous pouvez vous connecter en utilisant la commande argocd login ci-dessous :
|
1 |
argocd login localhost:8080 |
Vous devrez vous connecter pour déployer l'application lors de l'utilisation de la ligne de commande :

Il se peut que vous receviez un avertissement de sécurité. Si c'est le cas, appuyez sur y pour continuer. De nombreux utilisateurs souhaiteront peut-être changer le mot de passe une fois connectés. Si c'est le cas, exécutez la commande argocd account update-password pour changer le mot de passe. Nous disposons désormais d'une configuration Argo CD entièrement fonctionnelle.
Enfin, nous allons déployer une application sur le cluster Kubernetes en utilisant l'Argo CD installé.
Étape 4 – Utiliser plusieurs clusters
Avant de poursuivre la configuration de votre application, il est nécessaire de connaître la machine cible sur laquelle vous souhaitez la déployer. Dans de nombreux scénarios, Argo CD et l'application déployée peuvent s'exécuter sur le même cluster. C'est le comportement par défaut d'Argo CD, mais ce n'est pas une limitation. Si vous souhaitez déployer l'application sur d'autres machines cibles, exécutez d'abord la commande kubectl config sur votre machine :
|
1 |
kubectl config get-contexts -o name |
Supposons que vous obteniez deux clusters : test-deploy-cluster et test-target-cluster. Maintenant, si le test-deploy-cluster est l'endroit où se trouve votre Argo CD et que vous souhaitez déployer sur test-target-cluster, exécutez alors la commande ci-dessous :
|
1 |
argocd cluster add target-k8s |
La commande ci-dessus ajoutera les détails du cluster supplémentaire sur Argo CD. Elle permettra également de déployer des services sur le cluster cible d'Argo CD.
Étape 5 – Déployer un exemple d'application
Il est enfin temps de déployer des applications sur le cluster Kubernetes. Nous utiliserons les exemples d'applications fournis par Argo CD. Nous utiliserons également le helm-guestbook qui est construit à l'aide de Helm charts.
Pour installer l'application, nous utiliserons la commande argo app create . Nous spécifierons le dépôt Git, helm-guestbook , et transmettrons votre destination et votre espace de noms par défaut :
|
1 |
argocd app create helm-guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path helm-guestbook --dest-server https://kubernetes.default.svc --dest-namespace default |
Vous pouvez vérifier le statut de l'application nouvellement créée en exécutant la commande argocd app get:
|
1 |
argocd app get helm-guestbook |
Ne soyez pas surpris si vous voyez OutOfSync statut. Jusqu'à présent, nous avons téléchargé le chart Helm et créé un point d'entrée vers celui-ci pour Argo CD. Cependant, du côté de Kubernetes, aucune ressource ne lui est allouée. Pour synchroniser cette application, exécutez la commande ci-dessous :
|
1 |
argocd app sync helm-guestbook |

Lorsque vous travaillez avec GitOps, il est toujours nécessaire de synchroniser l'application avec l'amont. Par conséquent, chaque fois qu'un changement se produit dans le dépôt, Argo CD déploie l'application.
Nous avons déployé l'application à l'aide de la ligne de commande Argo CD. Vous pouvez obtenir le même résultat en utilisant l'interface web d'Argo CD. L'interface web est très utile si vous souhaitez vérifier l'état et le fonctionnement de l'application. Pour ouvrir l'interface web, ouvrez localhost:8080:

Pour vérifier l'installation, nous allons ouvrir l'application dans le navigateur. Notre helm-guestbook fonctionne sur le port 80. Si vous avez une autre application qui utilise le port 80, vous pouvez rediriger le port afin que les autres applications ne soient pas interrompues :
|
1 |
kubectl port-forward svc/helm-guestbook 9090:80 |
Enfin, ouvrez l'URL localhost:9090 sur votre navigateur web pour voir votre application fonctionner :

Maintenant, si un développeur pousse du code vers le dépôt distant GitHub, ArgoCD le capturera et le répercutera. Vos déploiements ArgoCD seront mis à jour en conséquence, assurant une disponibilité continue.
Conclusion
Dans ce tutoriel, nous vous avons montré comment installer et déployer des applications sur Kubernetes à l'aide d'Argo CD. Il est important de s'assurer que vos déploiements sur Kubernetes sont maintenables. GitOps pourrait grandement vous aider à cet égard.
Kubernetes est désormais la norme pour les déploiements sur le cloud. CloudSigma propose d'excellents tutoriels sur Kubernetes que vous pourrez consulter ensuite :
- Service DNS Kubernetes : un guide pour débutants
- Configuration de WordPress avec MySQL sur Kubernetes avec Helm
- Installation de Jenkins sur Kubernetes
- Exploration de CloudSigma PaaS : comment accéder à une application Kubernetes via une IP publique
Bonne informatique !
Commentaires
Aucun commentaire pour l'instant. Soyez le premier.