Un pipeline CI/CD bien construit raccourcit les cycles de développement et sécurise chaque mise en production. Ce guide détaille comment déployer un pipeline avancé avec GitLab, Docker et Kubernetes.
Prérequis
- GitLab avec accès au CI/CD
- Un cluster Kubernetes opérationnel
- Docker installé sur les runners GitLab
- Bonne compréhension de Docker et Kubernetes
Configuration du projet GitLab
Créer un fichier .gitlab-ci.yml à la racine du projet :
stages:
- build
- test
- deploy
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
build:
stage: build
script:
- docker build -t $IMAGE_TAG .
- docker push $IMAGE_TAG
test:
stage: test
script:
- docker run --rm $IMAGE_TAG pytest
deploy:
stage: deploy
script:
- kubectl set image deployment/mon-app mon-app=$IMAGE_TAG --record
environment:
name: production
url: https://mon-app.example.com
Runners GitLab avec Docker
Installation et enregistrement d'un runner Docker :
sudo gitlab-runner register --url https://gitlab.com/ --registration-token VOTRE_TOKEN
Configurer Docker executor :
sudo nano /etc/gitlab-runner/config.toml
Déploiement automatique sur Kubernetes
Créer un manifest Kubernetes deployment.yaml :
apiVersion: apps/v1
kind: Deployment
metadata:
name: mon-app
spec:
replicas: 3
selector:
matchLabels:
app: mon-app
template:
metadata:
labels:
app: mon-app
spec:
containers:
- name: mon-app
image: VOTRE_IMAGE:latest
ports:
- containerPort: 80
Appliquer dans le cluster :
kubectl apply -f deployment.yaml
Surveillance et alertes
- GitLab fournit nativement une surveillance des pipelines (logs, métriques)
- Intégrer Prometheus et Grafana sur Kubernetes pour la surveillance applicative
Bonnes pratiques CI/CD avancées
- Déploiement progressif (canary, blue/green)
- Tests automatisés (unitaires, intégration, E2E)
- Sécurité : scanning des images Docker
Compléments et alternatives
Pour auto-héberger votre infrastructure GitLab, découvrez comment déployer GitLab CE avec Docker Compose. Pour une approche GitOps complète, intégrez Argo CD. Améliorez la sécurité de vos images en utilisant une registry privée Harbor et scannez vos images avec Trivy.
Conclusion
Avec ce pipeline CI/CD avancé, vous livrez plus vite et plus souvent, sans sacrifier la stabilité de vos applications sur Kubernetes.


