Formation > Blog > Kubernetes > Comment intégrer Kubernetes dans Gitlab ?

Intégrer Kubernetes à GitLab

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 :

  1. Infrastructure > Clusters Kubernetes
  2. Sélectionnez : Connexion à un cluster (agent)
  3. Dans la liste déroulante, sélectionnez votre agent puis enregistrez
  4. 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 :

  1. Installez Helm
  2. Ouvrez un terminal et connectez-vous à votre cluster
  3. Exécutez la commande comportant le jeton d’accès

Intégrez Kubernetes à Gitlab pour gérer vos applications

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.

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp