Este artículo está disponible en francés.
1. Le principe #
Le canary sans intervention humaine.
Fonctionnement #
Flagger est un opérateur Kubernetes de progressive delivery. À partir d'un Deployment, il crée une version primary (stable) et une version canary, puis pilote un TraefikService pondéré. À chaque nouvelle image, il augmente progressivement la part de trafic du canary tant que les métriques restent bonnes, puis le promeut ; sinon il revient en arrière.
2. Installation et ressource Canary #
Flagger avec le provider Traefik.
Installation #
helm repo add flagger https://flagger.app
helm upgrade --install flagger flagger/flagger -n traefik \
--set meshProvider=traefik \
--set metricsServer=http://prometheus.monitoring:9090Canary #
apiVersion: flagger.app/v1beta1
kind: Canary
metadata: { name: app, namespace: app }
spec:
provider: traefik
targetRef: { apiVersion: apps/v1, kind: Deployment, name: app }
service: { port: 80, targetPort: 8080 }
analysis:
interval: 1m
threshold: 5 # 5 analyses en échec = retour arrière
maxWeight: 50
stepWeight: 10
metrics:
- name: request-success-rate
thresholdRange: { min: 99 }
interval: 1m
- name: request-duration
thresholdRange: { max: 500 } # millisecondes
interval: 1m
webhooks:
- name: tests-de-fumee
type: pre-rollout
url: http://flagger-loadtester.app/
metadata: { cmd: "curl -sf http://app-canary.app/healthz" }3. Suivre et déclencher #
Au quotidien.
Commandes #
kubectl -n app set image deploy/app app=registre/app:2.1.0 # déclenche une analyse
kubectl -n app get canary app -w # Progressing, Succeeded, Failed
kubectl -n app describe canary app # événements : poids, métriques, décisions
kubectl -n app get traefikservice- Générez du trafic pendant l'analyse (loadtester) : sans requêtes, les métriques sont vides et l'analyse échoue.
- Choisissez des seuils alignés sur vos SLO.
- Envoyez les événements de Flagger dans le canal de l'équipe (alerting Slack ou Teams).
Bonne Pratique : Commencez sur un service peu critique et observez plusieurs déploiements avant de généraliser.
Mi seguimiento
Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión
Artículos recomendados
Gestion des certificats SSL/TLS avec Let's Encrypt et ACME
Apprenez à automatiser la génération et le renouvellement de vos certificats SSL/TLS avec Let's E...
HAProxy dans Kubernetes : L'Ingress Controller Haute Performance
Découvrez en profondeur l'intégration de HAProxy dans Kubernetes. Architecture Direct-to-Pod, opt...
Les plugins Traefik : l'exemple de CrowdSec pour bloquer les attaques
Étendre Traefik avec des plugins (catalogue officiel, interpréteur Yaegi), puis protéger ses appl...
Traefik : les logs (journaux applicatifs et access logs)
Configurer les deux journaux de Traefik : le journal de fonctionnement (niveaux, format) et les a...
Traefik : le tracing distribué avec OpenTelemetry
Activer le tracing de Traefik v3 avec OpenTelemetry (OTLP), propager le contexte W3C vers les app...
Kubernetes : Pods, ReplicaSets et Deployments (déployer et mettre à jour)
Maîtriser les workloads Kubernetes : anatomie d'un pod, ReplicaSet, Deployment, stratégies Rollin...
HAProxy comme Ingress Controller Kubernetes : Le Guide de Production
Découvrez comment utiliser HAProxy comme Ingress Controller dans Kubernetes. Architecture Direct-...
Maîtriser les ACLs dans HAProxy : Le Guide Complet
Guide complet sur les ACLs HAProxy : apprenez à configurer le routage intelligent, le contrôle d'...
Maîtriser les ACLs dans HAProxy
Guide complet sur les ACLs HAProxy : apprenez à configurer le routage intelligent, le contrôle d'...