Guide Kubernetes SRE
Guide d'architecture Kubernetes multi-région et périphérie
Choisissez les régions, les limites de données et les contrôles de trafic en fonction de la correction applicative et de l'expérience utilisateur mesurée, pas de la seule intuition géographique.
Sur cette page
Une architecture Kubernetes multi-région peut réduire l'exposition à une défaillance régionale et rapprocher certaines charges de travail des utilisateurs. Elle introduit également davantage de complexité en matière d'état, de coordination, de routage, de publication, d'observabilité et de réponse aux incidents. Une couche de périphérie peut améliorer les décisions de livraison pour un trafic adapté, mais elle ne peut pas rendre sûre une écriture fortement cohérente entre les régions ni supprimer la latence d'une dépendance centralisée.
Commencez par la raison de la distribution : résidence réglementaire, reprise après sinistre, demande régionale, latence pour un parcours précis, isolation opérationnelle ou combinaison de ces facteurs. La raison détermine le modèle de données et la politique de trafic. « Les utilisateurs sont mondiaux » ne suffit pas pour choisir l'actif-actif, l'actif-passif ou un mécanisme de routage particulier.
La conception des données précède le pilotage du trafic
Décidez où résident les écritures faisant autorité, comment les réplicas prennent du retard ou entrent en conflit, et ce qu'un utilisateur voit pendant une défaillance régionale avant d'envoyer la même session dans plus d'une région.
Classer la charge de travail et les données
Distinguez les ressources publiques statiques, les réponses publiques pouvant être mises en cache, les lectures personnalisées, les écritures authentifiées, les tâches asynchrones et les fonctions du plan de contrôle. Chacune a des exigences différentes de localité et de défaillance. Une ressource de documentation publique peut souvent être servie près d'un utilisateur selon une politique de fraîcheur soigneusement définie. Une confirmation de paiement ou une mise à jour de compte nécessite un chemin d'écriture faisant autorité, l'idempotence et un contrat de cohérence clair.
Pour chaque magasin de données, documentez la source de vérité, la topologie des réplicas, le comportement du retard de réplication, la résolution des conflits, le processus de sauvegarde et de restauration, ainsi que les exigences de chiffrement et de résidence. Incluez les sessions, compteurs de limitation de débit, feature flags, files d'attente, secrets, certificats et dépendances d'identité ; ce sont des dépendances d'état fréquemment négligées dans un service « sans état ».
Choisir une topologie d'exploitation
Région active unique avec reprise
Une région reçoit les écritures et le trafic de production, avec une région de reprise testée. C'est souvent le modèle de cohérence le plus simple et il peut convenir lorsque les objectifs de reprise permettent une transition. La conception requiert des sauvegardes testées, des procédures de réplication ou de restauration des données, des changements DNS et de trafic, de la capacité dans la région de reprise et un processus de décision explicite pour le failover et le failback.
Régions applicatives actif-passif
Deux régions disposent de capacité applicative déployée, mais une seule reçoit normalement une charge d'écriture donnée. Cela peut réduire le temps de démarrage de l'application lors d'un failover tout en maintenant une propriété claire des écritures. Validez que la région passive peut absorber le trafic réel, dispose d'une configuration et de secrets à jour, et peut atteindre les services de données et tiers requis.
Actif-actif par partition ou localité
Plusieurs régions servent le trafic simultanément, généralement avec un partitionnement explicite des données, une affinité utilisateur ou un système de données répliqué conçu pour la cohérence requise. Cela n'améliore l'isolation que si les dépendances et les procédures opérationnelles sont conçues de la même manière. Évitez de qualifier un déploiement d'actif-actif parce que des conteneurs s'exécutent dans deux régions alors que toutes les écritures significatives dépendent d'une région de base de données.
Concevoir le pilotage du trafic et les contrôles de santé
Le pilotage du trafic peut fonctionner au niveau DNS, d'un proxy de périphérie, d'un équilibreur de charge global ou de la couche applicative. Choisissez le point de contrôle selon le comportement de propagation, les besoins de protocole, la gestion des sessions, l'observabilité et la vitesse de rollback. Les caches DNS et le comportement client peuvent retarder un changement ; le routage de périphérie peut réagir plus vite pour certains trafics, mais doit préserver les en-têtes, les contrôles de sécurité et la sélection correcte de l'origine.
Utilisez des contrôles de santé qui représentent le service dont les utilisateurs ont besoin, plutôt qu'un simple listener TCP ou endpoint de pod Kubernetes prêt. Un service peut répondre à une requête de santé superficielle alors que sa base de données, son service d'identité ou sa file d'attente critique est indisponible. Dans le même temps, ne rendez pas les contrôles de santé si profonds qu'une dépendance optionnelle lente retire toute capacité saine. Définissez l'ensemble de dépendances et testez-le.
Maintenez les basculements de trafic progressifs. Commencez avec une cohorte ou un chemin limité lorsque cela est possible, surveillez le succès et la latence visibles par les clients en parallèle de la saturation régionale, puis élargissez. Un basculement immédiat complet peut transformer un problème régional isolé en incident de capacité mondial. Chaque politique nécessite un rollback documenté et une dérogation manuelle dont l'accès est contrôlé et audité.
Mesurer la latence de bout en bout
Mesurez depuis l'utilisateur ou le client synthétique à travers DNS, TLS, la périphérie, l'ingress, l'application, le magasin de données et les services externes critiques. Segmentez par région utilisateur, route, région d'origine, réseau et publication. Cela montre si une nouvelle région améliore le parcours réel ou rapproche seulement le serveur applicatif tandis que la base de données reste distante.
Évitez les cibles de latence universelles. Une recherche interactive, un téléchargement de média et une exportation asynchrone ont des attentes utilisateurs et des contraintes techniques différentes. Établissez des objectifs pour le parcours, mesurez une distribution représentative et surveillez les régressions après des changements de routage, cache, données ou déploiement.
Préparer Kubernetes aux opérations régionales
Maintenez une configuration de cluster reproductible et indépendante par région lorsque cela est réaliste. Versionnez les manifests, les politiques, les références de secrets, le comportement d'ingress, la politique réseau, la configuration d'observabilité et les règles de livraison. Utilisez des contrôles de déploiement pouvant être suspendus ou annulés indépendamment, tout en vous assurant qu'un changement d'urgence peut être coordonné entre les régions lorsqu'une vulnérabilité partagée ou un défaut applicatif l'exige.
Dimensionnez chaque région selon son trafic prévu et son rôle en cas de défaillance. L'autoscaling, le provisionnement de nœuds et les protections contre les perturbations de pods nécessitent une validation sous charge régionale, pas seulement un test de développement local. Confirmez que les registres d'images, systèmes d'identité, émissions de certificats, pipelines de télémétrie et API externes restent accessibles lorsqu'une région ou un chemin fournisseur est dégradé.
Répéter les défaillances et le failback
Menez des exercices contrôlés pour une panne applicative régionale, une dégradation du magasin de données, une mauvaise configuration du routage de périphérie, une défaillance de dépendance, un déploiement obsolète et une surcharge dans la région de réception. Enregistrez la distribution du trafic, les résultats visibles par les utilisateurs, les décisions des contrôles de santé, le comportement de cohérence des données, le temps de récupération et les actions manuelles. Exercez le failback aussi bien que le failover ; le retour du trafic peut révéler un retard de réplication, une dérive de configuration ou un second pic de capacité.
N'effectuez pas automatiquement un failover simplement parce qu'une métrique de bas niveau franchit un seuil. Une action automatique peut être appropriée dans des cas bien compris et bornés, mais elle doit être testée face aux faux positifs et aux défaillances partielles. Pour les changements aux conséquences élevées, exigez une autorité d'incident claire et un runbook qui nomme les preuves nécessaires pour procéder.
Liste de contrôle d'architecture
Avant de lancer le trafic multi-région, confirmez la raison et la classification de la charge de travail ; le modèle d'autorité et de cohérence des données ; la capacité régionale et les limites des dépendances ; la sémantique de routage et des contrôles de santé ; le comportement des sessions et de l'authentification ; la corrélation de télémétrie entre la périphérie et les clusters ; les contrôles de déploiement et de rollback ; l'accès aux changements d'urgence ; ainsi que les procédures de failover et failback exercées.
Références officielles
- Kubernetes: Multi-Zone
- Kubernetes: Topology Aware Routing
- Google SRE: Data Integrity
- Google SRE: Disaster Recovery Planning
Évaluer la périphérie comme partie d'un système régional
Échangez avec Optimi sur une architecture de périphérie et de livraison mesurée pour les applications multi-région, en gardant dans le périmètre la correction et la capacité d'origine.
Discuter de la livraison multi-région