Serveur minecraft

La gestion de Kubernetes pour 'Minecraft' présente des caractéristiques informatiques d'entreprise – Monter un serveur MineCraft

Le 4 mai 2019 - 7 minutes de lecture

UNE Minecraft Les défis de la gestion des conteneurs sur les réseaux sociaux reflètent ceux de nombreux grands magasins informatiques.

Mineteria Inc., une petite start-up avec un effectif réparti de 10 employés et des partenaires financiers, semble au début un cas typique pour la direction de Kubernetes. Contrairement aux grandes entreprises, l'entreprise n'a pas à se soucier des applications et de l'infrastructure existantes; son activité est principalement réalisée sur le Web, où il gère des forums, un magasin et organise des événements en ligne pour Minecraft les joueurs.

Mais en coulisse, le flux de travail de gestion de Kubernetes de Mineteria est plus similaire à un environnement d’application dynamique, avec des connexions réseau persistantes et des exigences de haute disponibilité, à ceux prenant en charge des applications Web éphémères.

"Ce qui est unique à propos de Minecraft est-ce que nous avons une longue vie, persistante [network] connexions, "a déclaré Zach Schrier, PDG de Mineteria." Avec une application Web, s’il ya un problème mineur, vous pouvez simplement actualiser la page, et elle reviendra immédiatement. Mais avec une application de jeu, il est particulièrement important que nous maintenions la [application] Etat pour tous les joueurs ".

Les astuces de gestion de Kubernetes pour la persistance sont payantes

Lorsque Mineteria a lancé son service en 2016, il utilisait Google Cloud Platform, puis Google Kubernetes Engine, partiellement financé par les crédits du programme Google Cloud for Startups. Toutefois, au fur et à mesure de la croissance de l'entreprise, le prix de la bande passante de Google, qui atteignait 0,12 USD par gigaoctet, était problématique.

Mineteria s'est également qualifiée pour le programme de démarrage de DigitalOcean, DigitalOcean Hatch, qui propose des niveaux de tarification de la bande passante beaucoup plus intéressants et ne facture que 1 centime par gigaoctet pour un trafic dépassant les limites de bande passante intégrées pour les gouttelettes, nom de DigitalOcean pour les VM en nuage, a expliqué Schrier.

Mineteria utilise les bases de données PostgreSQL hébergées par DigitalOcean pour la plupart des données d'application avec état associées à ses applications. Toutefois, compte tenu des problèmes de connexion réseau persistants et de haute disponibilité, Mineteria a également créé ses propres applications de gestion Kubernetes pour déployer et gérer les charges de travail.

Une application écrite en Go, appelé Mineteria Controller, déploie les applications Mineteria sur les pods DigitalOcean Kubernetes une fois que les développeurs ont archivé le code dans Git et que Jenkins a terminé les versions initiales. Mineteria Controller aide également à gérer la façon dont le trafic est dirigé vers les nouvelles versions de l'application, afin que les connexions réseau persistantes ne soient pas interrompues.

Ce processus – une version d’un modèle de déploiement d’application canary – convient particulièrement aux conteneurs et à Kubernetes, a déclaré Schrier.

"Tous nos concurrents, tous les jours à 4 heures du matin, diront:" Tout le monde descend [our network]. Nous redémarrons notre système pour appliquer les mises à jour. ' Et nous n'avons pas à faire cela ", a déclaré Schrier." Nous pouvons effectuer un déploiement à l'heure de pointe lorsque plusieurs milliers de joueurs sont en ligne, car nous ne fermons pas les anciens serveurs; nous en faisons simplement de nouvelles et attendons que les gens s'y jettent. "

Les versions intégrées des applications de déploiement, telles que Netflix Spinnaker, transfèrent généralement le trafic vers de nouveaux nœuds plus rapidement que ne le souhaiterait Mineteria.

"Ce n'est pas juste un site Web", a déclaré Schrier. "Nous ne pouvons pas simplement fermer l'ancien pod immédiatement et laisser la connexion réseau être perdue."

Les paramètres par défaut de Kubernetes pour le placement des conteneurs sur les nœuds de travail sont basés sur les seuils de l'UC. Cela n’est pas suffisamment granulaire pour répondre aux besoins de Mineteria: les charges de travail peuvent évoluer de manière imprévisible si un influenceur important de YouTube dirige le trafic sur son réseau. Pour gérer cela, le Mineteria Controller attribue des charges de travail via l'API Kubernetes et l'API DigitalOcean, de sorte que les serveurs susceptibles de recevoir un trafic important ne soient pas affectés au même pod.

Kubernetes gestion des douleurs croissantes dans le nuage

Le service DigitalOcean Kubernetes, que Mineteria utilise en aperçu limité, gère une grande partie de l’administration réseau de bas niveau et de la maintenance des serveurs maîtres Kubernetes pour la société. Mais le service de démarrage a encore des problèmes à régler.

DigitalOcean ne disposant pas de service géré pour Redis, la base de données en mémoire, Mineteria gère pour l'instant son propre déploiement haute disponibilité de cette application dans trois pods connectés au sein de son infrastructure Kubernetes. Mineteria effectue des tests de chaos pour s'assurer que le service Redis restera en ligne en cas d'échec d'une gouttelette.

DigitalOcean étant également dépourvu de registre de conteneur natif, Mineteria utilise toujours la version de Google pour héberger des images de conteneur.

Nous pourrions extraire le contrôleur DO de nos grappes et, même s’il ne lancerait pas de nouvelles VM, les conteneurs de la Mineteria ne se briseraient pas. … Si un processus meurt, nous n'aurons pas d'échec catastrophique.

Zach SchrierPDG, Mineteria

Une autre application créée par Mineteria, DO Controller, alimente automatiquement les gouttelettes DigitalOcean à mesure que le cluster se développe, bien qu'une limitation de fonctionnalités dans DigitalOcean Kubernetes conserve une partie de ce manuel de processus pour l'instant. DigitalOcean ne prend pas en charge les étiquettes Kubernetes personnalisées, dont Mineteria a besoin pour déterminer où placer les pods Kubernetes sur des hôtes, via son interface utilisateur. Les administrateurs de Mineteria doivent donc exécuter manuellement les commandes kubectl pour exécuter cette fonction.

Ici, une approche de microservices assure une haute disponibilité pour les applications Mineteria, qu’il y ait des problèmes ou des retards dans le processus de provisionnement des gouttelettes.

"Nous pourrions extraire le contrôleur DO de nos clusters et, même s'il ne lancerait pas de nouvelles machines virtuelles, les conteneurs de la Mineteria ne se briseraient pas", a déclaré Schrier. "Cette séparation des préoccupations par le biais de microservices signifie que, si un processus meurt, nous n'aurons pas d'échec catastrophique."

Alors que le service DigitalOcean Kubernetes tend à la disponibilité générale en 2019, l'équipe de Schrier doit encore faire face à quelques mises à niveau perturbatrices, telles que l'introduction d'une fonctionnalité qui rend l'équilibrage de charge Kubernetes plus efficace. Un nouveau paramètre pour les équilibreurs de charge DigitalOcean utilisés avec Kubernetes réduira le temps de latence et améliorera le débit, car il réduit le nombre de sauts de réseau nécessaires pour acheminer le trafic vers une application. Mais il faudra que Mineteria reconstruise et redémarre son cluster, avec une interruption de maintenance de 30 minutes.

DigitalOcean envisage d’ajouter un registre de conteneurs hébergé et un service de base de données Redis hébergé, a déclaré un porte-parole de la société. Redis sera disponible au troisième trimestre de 2019. La société prévoit également de traiter manuellement le problème d'étiquette de nœud personnalisé actuellement géré par Mineteria, bien qu'aucun délai spécifique pour une mise à jour ne soit disponible. Une fois que le service aura atteint la disponibilité générale, des mises à jour telles que le paramètre d'équilibrage de charge Kubernetes seront fournies aux utilisateurs automatiquement et sans interruption, a déclaré le porte-parole.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.