Prendre rendez-vous
  1. Accueil
  2. /
  3. Blog
  4. /
  5. Déployer un déploiement Canary sur Kubernetes avec Istio

Conteneurs
Kubernetes

Déployer un déploiement Canary sur Kubernetes avec Istio

19 juillet 2025

3 min de lecture

Sommaire
Introduction
Prérequis
Installation d'Istio (si nécessaire)
Déploiement des deux versions
Configuration du Canary
Monitoring et rollback
Bonnes pratiques
Conclusion

Introduction

Le déploiement Canary permet de tester progressivement une nouvelle version de votre application en production, en dirigeant un pourcentage du trafic vers la version canary. Istio, en tant que service mesh, facilite la mise en place de stratégies Canary grâce à ses ressources VirtualService et DestinationRule.

Si vous débutez avec Kubernetes, consultez d'abord notre guide d'introduction aux concepts fondamentaux de Kubernetes.

Prérequis

  • Un cluster Kubernetes (>=1.21)
  • Istio installé (version >= 1.22)
  • kubectl et istioctl configurés
  • Une application déployée avec deux versions (v1 et v2)

Installation d'Istio (si nécessaire)

1. Télécharger Istio
curl -L https://istio.io/downloadIstio | sh -
cd istio-1.22.0
export PATH=$PWD/bin:$PATH
2. Installer le profile de base
istioctl install --set profile=demo -y

Activer l'injection automatique de sidecars :

kubectl label namespace default istio-injection=enabled

Déploiement des deux versions

1. Appliquer le manifeste de base
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-v1
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
      version: v1
  template:
    metadata:
      labels:
        app: myapp
        version: v1
    spec:
      containers:
        - name: myapp
          image: myorg/myapp:1.0
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: myapp
spec:
  selector:
    app: myapp
  ports:
    - port: 80
kubectl apply -f myapp-v1.yaml
2. Déployer la version v2
kubectl apply -f myapp-v2.yaml

myapp-v2.yaml reprend le même Deployment mais avec version: v2 et image: myorg/myapp:2.0.

Configuration du Canary

1. DestinationRule
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: myapp
spec:
  host: myapp
  subsets:
    - name: v1
      labels:
        version: v1
    - name: v2
      labels:
        version: v2
kubectl apply -f destinationrule.yaml
2. VirtualService pour répartir le trafic
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: myapp
spec:
  hosts:
    - myapp
  http:
    - route:
        - destination:
            host: myapp
            subset: v1
          weight: 90
        - destination:
            host: myapp
            subset: v2
          weight: 10

Ajustez le weight pour augmenter progressivement la part de trafic vers v2.

kubectl apply -f virtualservice-canary.yaml

Monitoring et rollback

  • Utilisez Kiali ou Grafana pour visualiser les métriques d'Istio.
  • Si le taux d'erreur de v2 dépasse un seuil, revenez à 0 % de trafic sur v2 :
    kubectl patch virtualservice myapp --type merge -p '{"spec":{"http":[{"route":[{"destination":{"host":"myapp","subset":"v1"},"weight":100},{"destination":{"host":"myapp","subset":"v2"},"weight":0}]}]}}'
    

Bonnes pratiques

  1. Commencez bas (10 %) puis augmentez (25 %, 50 %, 100 %).
  2. Automatisez l'augmentation via CI/CD et alertes.
  3. Testez avec du load testing (Hey, k6, etc.).
  4. Définissez des SLIs/SLOs pour valider la stabilité.
  5. Sécurisez les VirtualServices avec mTLS.

Pour une supervision complète de vos canaries, découvrez notre guide sur le monitoring avec Prometheus et Grafana. Pour automatiser vos déploiements Canary à travers les environnements, intégrez GitOps avec Argo CD.

Conclusion

Le Canary Deployment avec Istio vous offre un déploiement progressif sécurisé, réduisant les risques liés aux nouvelles versions et améliorant la confiance lors de vos mises à jour en production.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires

KubeVirt en 2026 : faire tourner des VMs dans Kubernetes en prod
Kubernetes
Infrastructure
Conteneurs

KubeVirt en 2026 : faire tourner des VMs dans Kubernetes en prod

Architecture, cas d'usage, migration depuis VMware, pièges opérationnels. KubeVirt v1.8, live migration, CBT, Hypervisor Abstraction Layer côté ops.

20 mai 2026

Lire plus

Containerd : le runtime de conteneurs sous le capot de Kubernetes
Conteneurs
Kubernetes
DevOps

Containerd : le runtime de conteneurs sous le capot de Kubernetes

Comprendre containerd, le runtime standard de Kubernetes. Architecture, CLI nerdctl, configuration, et comparaison avec Docker et CRI-O.

26 févr. 2026

Lire plus

Kubernetes en 2026 : comprendre les bases de l'orchestration de conteneurs
Kubernetes
Conteneurs
DevOps

Kubernetes en 2026 : comprendre les bases de l'orchestration de conteneurs

Guide complet pour débuter avec Kubernetes : concepts fondamentaux, architecture, cas d'usage. Découvrez pourquoi 93% des entreprises l'adoptent et quand préférer Docker Swarm.

19 févr. 2026

Lire plus


SHPV, votre partenaire de confiance en infrastructure et infogérance informatique en France.

SHPV
Prendre rendez-vousNous contacter
Expertise
InfrastructureDatacenterInfogéranceCloudHébergementTransit IP
Légales
Conditions Générales de VenteCPS - Contrat de ServicesCPS - Hébergement CloudCPS - Microsoft 365Accord sous-traitance RGPDTarifs interventions

SHPV © 2026 - Tous droits réservés

Mentions légalesPolitiques de confidentialité
SHPV FRANCE - SAS au capital de 16 000 € - 52 Rue Romain Rolland, 71230 Saint-Vallier - SIRET n°80886287400035 - R.C.S. Chalon-sur-Saône. Par téléphone 09 72 310 818 - Email: support@shpv.fr