Automatiser le Déploiement : Mettre en Place une Pipeline CI/CD avec Jenkins et Kubernetes

Automatiser le Déploiement : Mettre en Place une Pipeline CI/CD avec Jenkins et Kubernetes

Introduction

L’intégration continue et le déploiement continu (CI/CD) sont des pratiques essentielles pour des cycles de développement rapide et fiables. Cet article guide la mise en place d’une pipeline CI/CD utilisant Jenkins et Kubernetes.

Pré-requis

  • Un cluster Kubernetes fonctionnel.
  • Jenkins installé et configuré (soit localement, soit sur Kubernetes).

Étapes de Configuration

  1. Installer Jenkins sur Kubernetes

    • Créer un namespace pour Jenkins

       
      kubectl create namespace jenkins
    • Déployer Jenkins via Helm

      helm repo add jenkinsci https://charts.jenkins.io helm repo update helm install jenkins jenkinsci/jenkins --namespace jenkins
    • Récupérer le mot de passe initial

      kubectl exec --namespace jenkins -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/chart-admin-password && echo
    • Accéder à Jenkins

      kubectl --namespace jenkins port-forward svc/jenkins 8080:8080
  2. Configurer Jenkins pour Kubernetes

    • Installer les plugins nécessaires

      • Kubernetes Plugin
      • Git Plugin
      • Pipeline Plugin
    • Configurer Jenkins avec le plugin Kubernetes

      • Accéder à Manage Jenkins -> Manage Plugins
      • Installer le plugin Kubernetes
    • Configurer le cloud Kubernetes dans Jenkins

      • Accéder àManage Jenkins -> Manage Nodes and Clouds -> Configure Clouds
      • Ajouter un nouveau cloud Kubernetes et configurer les détails du cluster
  3. Créer une Pipeline Jenkins

    • Créer un nouveau job de type Pipeline
    • Configurer le script Jenkinsfile
      groovy
       
      pipeline { agent { kubernetes { yaml """ apiVersion: v1 kind: Pod spec: containers: - name: jnlp image: jenkins/inbound-agent:latest args: ['\$(JENKINS_SECRET)', '\$(JENKINS_NAME)'] - name: docker image: docker:latest command: - cat tty: true """ } } stages { stage('Build') { steps { container('docker') { sh 'docker build -t myapp:latest .' } } } stage('Deploy') { steps { container('kubectl') { sh 'kubectl apply -f k8s/deployment.yaml' } } } } }

Conclusion

En suivant ces étapes, vous aurez configuré une pipeline CI/CD avec Jenkins et Kubernetes, automatisant ainsi le déploiement de vos applications conteneurisées.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut