Patterns Kubernetes : Déploiement, Gestion des Ressources & Multi-Tenancy
#kubernetes#devops#cloud#architecture#containers
Kubernetes fournit les briques ; les patterns fournissent l'architecture. Cet article couvre les stratégies de déploiement, les patterns structurels et les modèles de tenancy qui séparent les clusters de production des demos.
Comparaison des Stratégies de Déploiement
| Stratégie | Zero downtime | Vitesse rollback | Coût ressources | Risque | Idéal pour |
|---|---|---|---|---|---|
| Rolling update | Oui | Lent (re-déploiement) | 1x + surge | Faible par pod | Services stateless, choix par défaut |
| Blue-green | Oui | Instantané (bascule) | 2x | Tout-ou-rien | Services critiques |
| Canary | Oui | Rapide (routage) | 1x + % canary | Rayon d'explosion contrôlé | Services user-facing |
| Recreate | Non (coupure) | Lent | 1x | Coupure totale | Services stateful, migrations BDD |
| Shadow | Oui | N/A | 2x | Aucun (trafic miroir) | Validation de performance |
tadata
Extrait de la fiche « SOA-C03 Domain 3: Deployment, Provisioning, Automation » · Demander la fiche complète
Patterns Sidecar / Ambassador / Adapter
tadata
| Pattern | Rôle | Exemple | Quand l'utiliser |
|---|---|---|---|
| Sidecar | Étendre l'app avec des préoccupations transverses | Proxy Envoy, collecteur de logs | Service mesh, observabilité |
| Ambassador | Proxy les connexions sortantes | Injection token OAuth, rate limiter | Simplifier la communication externe |
| Adapter | Normaliser la sortie de l'app | Exporteur Prometheus, convertisseur de format | Monitoring hétérogène |
| Init container | Exécution avant démarrage de l'app | Migration BDD, injection de secrets | Initialisation unique |
Taxonomie de Gestion des Ressources
tadata
- Requests & limits
- Requests CPU (garantie de scheduling)
- Limits CPU (plafond de throttling)
- Requests mémoire (garantie de scheduling)
- Limits mémoire (seuil d'OOM-kill)
- Qualité de service (QoS)
- Guaranteed (requests = limits)
- Burstable (requests < limits)
- BestEffort (aucun request/limit)
- Contrôles au niveau du cluster
- ResourceQuotas (plafonds par namespace)
- LimitRanges (valeurs par défaut et bornes par pod)
- PriorityClasses (ordre d'éviction)
- Autoscaling
- HPA : Horizontal Pod Autoscaler (nombre de réplicas)
- VPA : Vertical Pod Autoscaler (dimensionnement des ressources)
- KEDA : scaling piloté par les événements (profondeur de file, métriques personnalisées)
- Cluster Autoscaler / Karpenter (provisionnement de nœuds)
tadata
Extrait de la fiche « AKS Scaling, Upgrades and Operations » · Demander la fiche complète
Matrice de Stratégie de Namespaces
| Stratégie | Structure | Avantages | Inconvénients | Idéal pour |
|---|---|---|---|---|
| Par environnement | dev / staging / prod | Simple, séparation claire | Faible isolation intra-env | Petites équipes |
| Par équipe | team-a / team-b | Autonomie équipe, RBAC | Découverte inter-équipes plus difficile | Orgs moyennes |
| Par service | api-gateway / billing | Isolation maximale | Prolifération de namespaces | Sécurité stricte |
| Hybride | prod-team-a / staging-team-a | Meilleur compromis | Conventions de nommage critiques | Grandes organisations |
Comparaison Multi-Tenancy
| Dimension | Isolation namespace | Clusters virtuels (vCluster) | Clusters séparés |
|---|---|---|---|
| Niveau d'isolation | Souple (RBAC + NetworkPolicy) | Moyen (control plane virtuel) | Fort (séparation physique) |
| Efficacité coût | Élevée | Moyenne | Faible |
| Rayon d'explosion | Namespace | Cluster virtuel | Cluster entier |
| Complexité | Faible | Moyenne | Élevée |
| Conformité | Basique | Bonne | Meilleure (air-gapped) |
| Idéal pour | Équipes internes | ISVs, platform engineering | Industries réglementées |
tadata
Extrait de la fiche « AKS Scaling, Upgrades and Operations » · Demander la fiche complète