Réussir la haute disponibilité... Note

Réussir la haute disponibilité avec une base de données distribuée sur Kubernetes chez Airbnb

Les organisations utilisaient traditionnellement des serveurs autonomes coûteux avec des mécanismes de sharding pour la mise à l'échelle des bases de données, mais cette approche s'est avérée problématique pour la maintenance à mesure que les exigences de données augmentaient. Exécuter des bases de données open-source scalable horizontalement, fiables et à faible latence dans le cloud à un coût raisonnable est un défi important. Airbnb a adopté une stratégie innovante en déployant un cluster de base de données distribué à travers plusieurs clusters Kubernetes pour améliorer la fiabilité et l'opérabilité. Gérer les services d'état comme les bases de données sur Kubernetes est difficile, en particulier en ce qui concerne le remplacement des nœuds et les mises à jour, car Kubernetes manque de prise en charge de la distribution des données. Pour atténuer cela, Airbnb a attaché des volumes de stockage aux nœuds à l'aide d'AWS EBS, permettant une réattachement automatique à de nouvelles machines virtuelles via des revendications de volume persistant Kubernetes. Des opérateurs Kubernetes personnalisés ont été développés pour gérer les événements de remplacement de nœuds, les catégorisant en échecs initiés par la base de données, échecs d'infrastructure planifiés et échecs non planifiés. Pour les échecs initiés par la base de données et les échecs d'infrastructure planifiés, les opérateurs s'assurent que tous les nœuds sont en cours d'exécution avant le remplacement et interceptent les évictions de pod pour coordonner des suppressions sécurisées. Les échecs non planifiés ne peuvent pas être coordonnés, mais la maintenance en cours est protégée en bloquant les remplacements jusqu'à ce que le matériel défectueux soit réparé. Pour garantir une haute disponibilité régionale, Airbnb déploie chaque base de données à travers trois clusters Kubernetes indépendants dans des zones de disponibilité AWS différentes, limitant ainsi la portée des problèmes. La surprovision de clusters de bases de données garantit une capacité suffisante même si une zone de disponibilité entière, un cluster Kubernetes ou tous les nœuds de stockage dans une zone tombent en panne. AWS EBS fournit une réattachement rapide pour les remplacements de nœuds et une durabilité supérieure, permettant un cluster hautement disponible avec seulement trois réplicas. Les pics de latence de queue dans EBS sont atténués en mettant en œuvre des timeouts de lecture de stockage et en autorisant les lectures à partir de réplicas pour réduire la latence et éviter les coûts inter-zones, les lectures obsolètes optimisant encore les performances de lecture. Cette stratégie de cluster Kubernetes multi-cluster, exploitant AWS EBS et des opérateurs personnalisés, permet aux systèmes de stockage distribués open-source d'atteindre une haute disponibilité, une faible latence et une scalabilité dans les environnements cloud, permettant une gestion de données robuste.
CdXz5zHNQW_5ISBolXzut.jpeg