Découvrez comment intégrer Kubernetes à GitLab afin d’accéder à des fonctionnalités DevOps avancées en matière de déploiements ou de tests automatisés.
GitLab est efficace pour déployer vos applications dans une grande majorité d’environnements que vous désirez.
Nous souhaitons vous proposer notre formation Kubernetes et notre formation GitLab, afin de développer vos compétences dans le milieu du DevOps. GitLab sur 2 jours et Kubernetes sur 3 jours, avec ces formations, vous apprendrez à maîtriser le déploiement, la gestion et l’automatisation d’application conteneurisée.
L’équipe Ambient IT
Tout d’abord, pour intégrer Kubernetes avec GitLab, il est important de devoir créer ou utiliser un cluster Kubernetes existant.
Le cluster Kubernetes
Par définition, un cluster désigne un ensemble de nœuds s’exécutant dans des applications conteneurisées. On parle de conteneurisation, car elles possèdent leur propre dépendance. Cela facilite la manipulation des applications.
Il vous faudra un cluster déjà existant ou un cluster créé par vos soins à l’aide de différents environnements mis en place, pour déployer une application conteneurisée.
Il existe plusieurs services tels que :
- Google Kubernetes Engine (GKE)
- Amazon Elastic Kubernetes Services (EKS)
- Digital Ocean Kubernetes
Une fois que vous avez votre cluster, vous pourrez par la suite installer un agent qui vous permettra de le connecter au cluster Kubernetes.
Installation d’un agent
L’agent GitLab est un composant actif qui peut être intégré au cluster de Kubernetes pour réaliser des tâches d’intégration en toute sécurité.
Création de l’agent
Votre agent doit impérativement utiliser un fichier YAML pour sa simplicité d’utilisation et de lecture. De plus, le langage YAML est utile pour les déploiements Kubernetes. Par ailleurs, les modifications du fichier de configuration pourront être suivies et vérifiées grâce à son ajout dans le système de contrôle du code source de GitHub.
Première étape : Vous devez choisir un nom pour votre agent. Cependant, il y a quelques règles à respecter lors du choix de votre nom de domaine. La norme RFC 1123 indique que le nom doit :
- Contenir 63 caractères au maximum
- Contenir des lettres et des chiffres
- Contenir seulement un tiret comme caractère spécial
Deuxième étape : Par la suite, créez ce répertoire dans le référentiel : .gitlab/agents/agent-name
Création du fichier de configuration
Dernière étape : À l’intérieur de ce répertoire, créez un fichier config.yaml, le fichier se nommera donc .gitlab/agents/agent-name/config.yaml
Ce fichier contient l’ensemble des informations concernant la configuration de l’agent.
Enregistrement de l’agent sur Gitlab
Pour enregistrer l’agent, vous devez rechercher votre projet dans votre fichier de configuration d’agent. Une fois trouvé, il faudra vous rendre dans le menu :
- Infrastructure > Clusters Kubernetes
- Sélectionnez : Connexion à un cluster (agent)
- Dans la liste déroulante, sélectionnez votre agent puis enregistrez
- Une commande ainsi qu’un jeton d’accès vous sera généré, copiez le tout, cela vous permettra d’installer l’agent dans votre cluster
Important : Le jeton d’accès doit être conservé et ne doit pas être partagé, il vous permet de vous authentifier de manière sécurisée. Néanmoins, si un utilisateur malveillant l’obtient, il pourrait accéder à vos projets, mais également à de nombreux projets GitLab, et ainsi voler des données essentielles.
Mise en place de l’agent dans le cluster
Depuis la version 14.10 de GitLab, il est recommandé d’utiliser Helm pour installer l’agent dans un cluster :
- Installez Helm
- Ouvrez un terminal et connectez-vous à votre cluster
- Exécutez la commande comportant le jeton d’accès
Installation de plusieurs agents dans votre cluster
Vous pouvez installer plusieurs agents pour vos clusters. Appliquez les mêmes étapes évoquées précédemment. Il existe deux méthodes pour l’installation d’un nouvel agent. La première consiste à choisir un nom de version différent :
helm upgrade --install second-gitlab-agent gitlab/gitlab-agent
La seconde consiste à installer l’agent dans un namespace différent :
helm upgrade --install gitlab-agent gitlab/gitlab-agent \
--namespace different-namespace \
Mises à jour des versions de l’agent
En outre, il est important de savoir qu’une fois votre agent installé dans votre cluster, sa version doit correspondre à la version majeure et mineure de GitLab. C’est-à-dire, à ce jour, la version 15.8 est la dernière version sortie de GitLab, le 22 janvier 2023, votre agent doit être actualisé à la version 15.8 à l’idéal, pour expérimenter une performance optimale.
Pour mettre à jour votre agent, vous pouvez exécuter la commande :
helm repo update
helm upgrade --install gitlab-agent gitlab/gitlab-agent \
--namespace gitlab-agent \
--reuse-values
Si vous souhaitez définir une version spécifique :
helm upgrade --install gitlab-agent gitlab/gitlab-agent \
--namespace gitlab-agent \
--reuse-values \
--set image.tag=v15.8
Désinstallation de l’agent
Si vous désirez désinstaller un de vos agents, cela est possible via la commande suivante :
helm uninstall gitlab-agent \
--namespace gitlab-agent
Utilisation du workflow gitlab runner
Par ailleurs, il est possible d’utiliser le workflow GitLab Runner pour exécuter des tâches dans un pipeline. Cette application peut prendre en charge plusieurs systèmes d’exploitations différents. Grâce à l’agent que vous avez créé, vous pouvez déployer ce workflow GitOps dans un cluster Kubernetes.