• 1. pipeline ci/cd kubernetes sur azure aks avec helm et github actions

  • 1.1. prérequis et contexte

  • 1.2. configuration du cluster AKS

  • 1.3. définition du chart Helm

  • 1.4. création du workflow GitHub Actions

  • 1.5. bonnes pratiques et optimisations

  • 1.6. métriques et sécurité

  • 1.7. conclusion

pipeline ci/cd kubernetes sur azure aks avec helm et github actions

Image de pipeline ci/cd kubernetes sur azure aks avec helm et github actions

pipeline ci/cd kubernetes sur azure aks avec helm et github actions

Dans ce guide technique, nous allons mettre en place un pipeline CI/CD complet pour déployer automatiquement une application Node.js sur un cluster Azure Kubernetes Service (AKS) à l’aide de Helm et GitHub Actions. Les CTO de startups ou responsables DevOps y trouveront des snippets, des commandes CLI et des conseils pour optimiser performance et sécurité.

1. prérequis et contexte

  • Un repository GitHub contenant votre application (par exemple une API Node.js).
  • Azure CLI (version ≥2.40) et kubectl (v1.24+) installés.
  • Un cluster AKS opérationnel (SLA 99,95%).
  • Helm 3 pour gérer les releases.

2. configuration du cluster AKS

  1. Connexion à Azure et récupération des credentials du cluster :
    az login
    az account set --subscription "MonSubscription"
    az aks get-credentials --resource-group rg-aks --name cluster-aks
  2. Vérification du contexte Kubernetes :
    kubectl config current-context
    # doit retourner "cluster-aks"
  3. Création d’un namespace dédié :
    kubectl create namespace ci-cd

3. définition du chart Helm

Placez votre chart dans charts/myapp/ :

charts/
└── myapp/
    ├── Chart.yaml
    ├── values.yaml
    └── templates/
        ├── deployment.yaml
        └── service.yaml

Extrait de values.yaml :

replicaCount: 2

image:
  repository: myregistry.azurecr.io/myapp
  tag: "v{{ env.GITHUB_SHA }}"

service:
  type: LoadBalancer
  port: 80

4. création du workflow GitHub Actions

Placez ce fichier dans .github/workflows/ci-cd.yaml :

name: CI/CD AKS

on:
  push:
    branches: [main]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
      - name: checkout code
        uses: actions/checkout@v3

      - name: setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '16'

      - name: install dependencies
        run: npm ci

      - name: run tests
        run: npm test

      - name: build Docker image
        uses: docker/build-push-action@v3
        with:
          context: .
          push: true
          tags: |
            myregistry.azurecr.io/myapp:latest
            myregistry.azurecr.io/myapp:${{ github.sha }}

  deploy:
    needs: build-and-push
    runs-on: ubuntu-latest
    steps:
      - name: download kubeconfig
        uses: azure/aks-set-context@v1
        with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}
          cluster-name: cluster-aks
          resource-group: rg-aks

      - name: setup helm
        uses: azure/setup-helm@v1

      - name: helm upgrade
        run: |
          helm repo add stable https://charts.helm.sh/stable
          helm upgrade myapp charts/myapp \
            --namespace ci-cd \
            --install \
            --set image.tag=${{ github.sha }}

5. bonnes pratiques et optimisations

  • Sécurité des secrets : stockez AZURE_CREDENTIALS dans GitHub Secrets (JSON généré par az ad sp create-for-rbac).
  • Rollback automatique : ajoutez --wait --timeout 5m à la commande Helm pour échouer proprement en cas de déploiement invalide.
  • Monitoring : intégrez Prometheus + Grafana pour suivre l’usage CPU/RAM (helm install prometheus).
  • Performance : utilisez l’autoscaling AKS (kubectl autoscale deployment myapp --cpu-percent=60 --min=2 --max=10).

6. métriques et sécurité

IndicateurObjectif
Durée CI (build + tests)< 5 min
MTTR déploiement< 3 min
Vulnérabilités conteneurs0 high (scan clairance)

stratégies de sécurité

  • RBAC Kubernetes strict.
  • Pod Security Policies en mode restrictive (baseline ou hardened).
  • Scan d’images Docker via trivy en amont.

liens utiles

conclusion

Ce pipeline CI/CD Kubernetes sur AKS avec Helm et GitHub Actions réduit le time-to-market, automatise vos déploiements et améliore la fiabilité de vos mises en production. En appliquant ces bonnes pratiques, vous gagnez en agilité et en sécurité.

Vous avez un projet à déployer ou besoin d’un audit de votre pipeline ? Contactez-nous discrètement pour en discuter.

Image de les 10 plugins chatgpt indispensables pour freelances et startups en 2025

les 10 plugins chatgpt indispensables pour freelances et startups en 2025

Les 10 plugins ChatGPT indispensables en 2025 pour freelances et startups qui veulent automatiser leurs tâches et gagner en productivité
Image de next.js 15 : turbopack et edge runtime en production pour des apps ultra-performantes

next.js 15 : turbopack et edge runtime en production pour des apps ultra-performantes

Plongez dans Next.js 15 : tour d’horizon de Turbopack en prod, d’un Edge Runtime stabilisé, résultats chiffrés et guide complet pour migrer sereinement.
Image de déployer une application next.js sur aws lambda avec serverless framework

déployer une application next.js sur aws lambda avec serverless framework

Apprenez à déployer votre application Next.js sur AWS Lambda avec Serverless Framework pour profiter d’une mise à l’échelle et de coûts maîtrisés.
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Nous contacter