Cette page recommande des stratégies de charge de travail de conteneur Kubernetes qui rendent votre application plus tolérante aux pannes dans un univers multizone Google Distributed Cloud (GDC) air-gapped. GDC est compatible avec les applications de conteneurs natifs Kubernetes qui sont largement utilisées et compatibles avec Google Kubernetes Engine (GKE).
Cette page s'adresse aux développeurs du groupe des opérateurs d'applications, qui sont chargés de créer des charges de travail d'application pour leur organisation. Pour en savoir plus, consultez la documentation sur les audiences pour GDC air-gapped.
Considérations Kubernetes pour les applications à haute disponibilité
Pour obtenir une haute disponibilité dans Kubernetes, il ne suffit pas de se concentrer sur le plan de contrôle. Vous devez également concevoir et déployer des charges de travail de conteneurs de manière résiliente dans votre univers Google Distributed Cloud (GDC) sous air gap. Kubernetes propose plusieurs mécanismes puissants pour minimiser les temps d'arrêt et fournir des services à disponibilité élevée, même en cas de problèmes d'infrastructure ou lors d'une maintenance de routine. Voici les principales stratégies à envisager pour la haute disponibilité :
Maintenir la disponibilité avec des répliques et l'autoscaling : vous devez disposer d'un nombre suffisant d'instances en cours d'exécution de votre application pour assurer la haute disponibilité.
ReplicaSet: une ressourceReplicaSetmaintient un ensemble stable d'instances répliquées de pods identiques en cours d'exécution à tout moment. Si un pod échoue ou est arrêté, le contrôleurReplicaSeten crée automatiquement un nouveau pour le remplacer. Pour en savoir plus, consultez la documentation Kubernetes sur ReplicaSet.Autoscaler horizontal de pods (AHP) : alors qu'un
ReplicaSetmaintient un nombre fixe de répliques, le AHP ajuste automatiquement ce nombre en fonction des métriques observées, comme l'utilisation du processeur ou de la mémoire. Cela permet à votre application de gérer les pics de charge. Pour en savoir plus, consultez la documentation Kubernetes sur l'autoscaling horizontal des pods.
Réduisez les temps d'arrêt avec
PodDisruptionBudget(PDB) : pour en savoir plus, consultez la documentation Kubernetes sur la spécification d'un budget d'interruption pour votre application.Répartissez vos risques avec les règles d'anti-affinité : pour en savoir plus, consultez la documentation Kubernetes sur l'affinité et l'anti-affinité.
Vérifications de l'état avec des vérifications d'activité, d'aptitude et de démarrage : pour en savoir plus, consultez la section Configurer des vérifications d'activité, d'aptitude et de démarrage dans la documentation de Kubernetes.
Points de terminaison stables et équilibrage de charge avec les services : pour en savoir plus, consultez la documentation Kubernetes sur les services.
Mises à jour et rollbacks progressifs avec les déploiements : pour en savoir plus, consultez la documentation Kubernetes sur le rétrogradage d'un déploiement.
Définir des requêtes et des limites pour les ressources : pour en savoir plus, consultez la documentation Kubernetes sur la gestion des ressources pour les pods et les conteneurs.
Étapes suivantes
- Commencer à découvrir Kubernetes
- Charges de travail de conteneur dans GDC
- Créer un cluster pour exécuter des charges de travail de conteneurs