Backyards - un maillage de services automatisé au-dessus d'une infrastructure multicloud et hybride



Testez Backyards sur vos propres clusters: curl https://getbackyards.sh | sh && backyards install -a --run-demo curl https://getbackyards.sh | sh && backyards install -a --run-demo . Si vous êtes intéressé, consultez les détails de la dernière version .

En juin, nous avons introduit Backyards , un «maillage de service» automatisé au-dessus de notre opérateur Istio . Il simplifie considérablement la gestion du maillage des services dans une infrastructure multicloud et hybride. Backyards est intégré à la plateforme de gestion de conteneurs Pipeline sur Banzai Cloud, mais est également disponible en tant que produit autonome . Bien sûr, l'intégration avec Pipeline offre de nombreux avantages spécifiques (comme la gestion d'applications sur plusieurs clouds ), mais Backyards fonctionne sur n'importe quelle installation de Kubernetes.

Dans l' annonce Backyards, nous avons discuté de certaines des principales fonctions: créer un maillage de service en quelques clics, surveiller les applications via une représentation graphique unique et gérer les fonctions Istio à partir d'une interface utilisateur pratique. Ensuite, nous avons mentionné que la plate-forme est capable de gérer les réseaux de services multi-clusters Istio dans les déploiements multi-cloud et hybrides.

Dans cet article, nous allons examiner de plus près cette fonctionnalité - le maillage de service multi-cluster automatisé .

Qu'il s'agisse d'un ou plusieurs clusters, d'un environnement multi-cloud ou hybride, Backyards utilise le même ensemble de fonctionnalités et une interface pratique. Il est extrêmement facile de commencer avec un cluster, puis d'étendre en quelques clics le maillage de service à d'autres clusters (multi-cloud ou cloud hybride).

La motivation


Les systèmes hybrides et multi-cloud pénètrent rapidement dans la vie quotidienne des entreprises. L'intérêt et la prise de décision ont beaucoup augmenté depuis que Google a introduit Anthos en avril de cette année.

Nous avons également remarqué une augmentation de cet intérêt dans la plupart des entreprises avec lesquelles nous avons discuté de ce sujet. Quelqu'un préfère traiter les données dans ses propres centres de données, n'accédant aux services cloud qu'aux heures de pointe. D'autres recherchent constamment les tarifs les plus bas et les meilleures offres des fournisseurs de cloud, n'augmentant la charge de travail que lorsque le prix le permet. Ils ont tous besoin d'un moyen pratique de se déplacer entre différents clouds à la demande d'un client particulier, en raison de réglementations réglementaires ou d'exigences commerciales, ainsi que de créer plusieurs topologies différentes au-dessus de cette infrastructure multicloud et hybride.

Alors que la demande de solutions hybrides et multi-cluster augmentait, nous avons commencé à penser comment satisfaire les besoins de nos clients.

Les utilisateurs de pipelines travaillent avec un ou plusieurs nuages. Cela dépend des fonctions spécifiques dont ils ont besoin. On distingue trois fonctions clés:


Contexte


Dès le début, la plateforme Pipeline a pris en charge la connexion de différents fournisseurs de cloud à différents niveaux (clusters, déploiements et services). Cela a toujours été une de nos priorités.

Dans le même temps, nous travaillions activement sur Istio. L' opérateur a d' abord été libéré pour simplifier le déploiement et la gestion d'Istio, puis a exploré ses capacités multi-cluster. En conséquence, nous avons créé Backyards, un produit automatisé pour les infrastructures multi-cloud et hybrides , intégré dans Pipeline, avec l'opérateur open source Istio.

Backyards at Pipeline


Dans Pipeline, vous pouvez installer un maillage de service hybride ou multi-cluster et le gérer dans un environnement local ou dans n'importe quelle combinaison des cinq fournisseurs de cloud que nous prenons en charge.

La fonction de regroupement de clusters (groupe de clusters) vous permet de former des groupes de clusters, à condition de sélectionner un cluster comme principal. Vous pouvez ensuite les associer à diverses fonctions, telles que le Multi-cluster Deployment ou le Service Mesh .

Multi-cluster Deployment vous permet de déployer l'application simultanément sur plusieurs clusters. Ici, nous ne nous concentrons pas sur cette fonctionnalité, mais elle sera utilisée pour déployer facilement l'application sur plusieurs clusters. En savoir plus à ce sujet dans cet article .

Cet article examinera de plus près la Service Mesh . Il installe Istio sur le cluster principal et joint automatiquement tous les clusters du groupe à l' aide de l'opérateur Istio . Après cela, vous obtenez une vue intercluster de vos services, et un maillage multicluster du point de vue de la gestion n'est pratiquement pas différent d'un maillage classique à cluster unique.

Les fonctions


Création d'un maillage de service


Commençons par créer un cluster sur AWS à l'aide de la distribution Kubernetes légère et certifiée CNCF - PKE . Créez ensuite un maillage de service Istio sur ce cluster.

Lors de la création d'un maillage de service, un groupe de clusters est également formé en arrière-plan.

Après quelques secondes, la "grille" est installée et prête à l'emploi.



Déploiement d'applications


Nous avons maintenant besoin d'une application de démonstration avec des microservices pour montrer les capacités de notre produit. À des fins de démonstration, nous avons créé un projet AllSpark très simple et avons également créé un diagramme Helm avec une configuration préliminaire du déploiement AllSpark, qui simule un système de réservation de billets de cinéma. Tout est fait dans notre service cloud (SaaS) pour les diagrammes de Helm .

En utilisant la fonction de Multi-cluster Deployment susmentionnée, nous déploierons cette application en accédant à l'onglet Multi Cluster Deployments dans l'interface utilisateur. Ajoutez le référentiel https://charts.banzaicloud.io/gh/spotguidetest au Pipeline, puis le diagramme meshdemo et cliquez sur DEPLOY (pour installer tous les composants, assurez-vous que toutes les valeurs sont définies sur true ).



Il était possible de choisir un déploiement simple sur un cluster, mais nous avons indiqué une option multicluster, qui sera utile plus tard lors de l'utilisation de plusieurs clusters.

Présentation du maillage de service


Si vous revenez à la liste des mailles de service et cliquez sur le bouton observe , un panneau de contrôle apparaîtra. Puisqu'il n'y a pas de trafic dans notre application de test, et qu'il n'y a pas de métriques dans le système, ici nous ne verrons pas encore de visualisation. L'interface a une fonction de test flight qui dirige le trafic vers les points d'extrémité sélectionnés. Si vous cliquez sur le bouton HTTP dans le coin supérieur droit, vous pouvez remplir un formulaire contenant des informations sur le point de terminaison et envoyer du trafic de test à vos services. Dans notre exemple, le trafic doit aller au service de première page sur le port 8080.

Après quelques secondes, un calendrier de vos services apparaîtra. Les nœuds sur celui-ci représentent des services ou des charges de travail, et les flèches représentent des connexions réseau entre différents services. Le graphique est basé sur les métriques Istio qui proviennent de Prométhée.



Créer des clusters supplémentaires


L'extension du maillage de service à des clusters supplémentaires - même à partir de plusieurs fournisseurs de cloud différents - ne prend que quelques clics. Créons trois clusters supplémentaires chez trois fournisseurs différents, c'est plus intéressant. Nous pouvons facilement déployer un autre cluster PKE dans Azure, ainsi que des clusters OKE et GKE.



Extension de maillage de service


Revenons à la liste des mailles de service, appuyez sur le bouton RESIZE MESH , puis ADD NEW CLUSTER . Sélectionnez les clusters créés précédemment et appuyez sur le bouton ADD . C’est tout.



L'expansion peut prendre plusieurs minutes: chaque cluster doit se connecter et atteindre l'état HEALTHY .

Déploiement d'une application dans plusieurs clusters


Nous avons maintenant un maillage de service sur plusieurs clusters, et la fonction de Multi-cluster Deployment dans Pipeline a été précédemment activée, il est donc facile de déployer nos microservices de démonstration sur ces clusters. Dans ce diagramme Helm particulier, vous pouvez facilement activer et désactiver des composants. Étant donné que la fonction de Multi-cluster Deployment prend en charge la redéfinition des paramètres pour chaque cluster, il vous suffit de modifier le déploiement et d'établir quels composants nous voulons exécuter dans quel cluster.

Pour le déploiement multi-cluster, nous avons modifié les paramètres de cette façon:

PKE AWS

services: true
istioresources: true
frontpage: true
catalog: true
bookings: true

PKE Azure

services: true
moviesv1: true
moviesv2: true
moviesv3: true

OKE

services: true
payments: true
notifications: true

GKE

services: true
analytics: true




Présentation du maillage de service sur plusieurs clusters


Encore une fois, sélectionnez test flight dans l'interface pour diriger le trafic supplémentaire vers le point de terminaison précédemment sélectionné. Après quelques secondes, quelque chose de similaire au graphique ci-dessous apparaîtra. Maintenant, notre application est distribuée sur quatre clusters chez quatre fournisseurs différents.

Incroyable , non?!



Configuration NRA


Avant de terminer cet article, jetez un œil au dernier paramètre: Horizontal Pod Autoscaler . Sur la page Single-cluster Deployment dans Pipeline, vous pouvez facilement configurer HPA pour n'importe quel déploiement (dans notre cas, analytics-v1 ).



Lorsque vous installez HPA et envoyez suffisamment de trafic à vos services pour démarrer la mise à l'échelle automatique, vous verrez comment de plus en plus de pods apparaissent dans l'interface correspondant au projet analytics-v1 . Vous verrez également une augmentation du flux de requêtes le long des bords du graphique, ce qui se reflète dans les nombres et l'épaisseur des bords.



Résumé


Grâce à Backyards at Pipeline, il est facile de configurer un maillage de service hybride ou multi-cluster. Vous pouvez ensuite déployer, suivre, gérer et dépanner des applications sur plusieurs clusters à l'aide d'une interface utilisateur pratique.

Essayez-le gratuitement !

Source: https://habr.com/ru/post/fr479742/


All Articles