Services multicluster


Cette page vous offre un aperçu du fonctionnement des services multiclusters GKE (MCS). Pour apprendre à utiliser MCS, consultez la page Configurer les services multiclusters (MCS).

Présentation de MCS

L'objet Service de Kubernetes vous permet de découvrir un service et d'y accéder au sein d'un même cluster Kubernetes. Toutefois, il peut parfois être nécessaire de répartir les applications sur plusieurs clusters afin de répondre aux exigences de gestion d'état, de confidentialité, d'évolutivité, de disponibilité et de souveraineté des données. Avec MCS, vous pouvez créer des applications Kubernetes couvrant plusieurs clusters.

MCS est un mécanisme de détection de service et d'appel de clusters inter-clusters de Google Kubernetes Engine (GKE) qui exploite l'objet Service existant. Les services activés avec cette fonctionnalité sont détectables et accessibles sur tous les clusters dotés d'une adresse IP virtuelle (semblable au comportement d'un service ClusterIP accessible dans un cluster). À l'instar de vos services existants, MCS est compatible avec les API Open Source impulsées par la communauté, garantissant ainsi la portabilité de vos charges de travail.

MCS est une fonctionnalité de GKE. MCS configure les zones et les enregistrements Cloud DNS pour chaque service exporté dans vos clusters de Fleet. Un parc vous permet de regrouper et de normaliser logiquement des clusters GKE, ce qui facilite l'administration de l'infrastructure et permet d'utiliser des fonctionnalités multicluster telles que MCS. Pour en savoir plus sur les avantages des parcs et leur création, consultez la documentation sur la gestion des parcs.

Les services exportés, quel que soit leur type, disposent toujours d'un enregistrement Cloud DNS. Les services de type "sans interface graphique" disposent d'enregistrements pour chaque pod de backend avec un nom d'hôte, y compris les pods des StatefulSets. L'utilisation de Cloud DNS entraîne des frais supplémentaires. Vous êtes facturé selon les tarifs Cloud DNS.

Pour exporter un service avec MCS, créez une ressource personnalisée ServiceExport utilisant le même espace de noms et le même nom que le service. MCS importe automatiquement le service dans chaque cluster du parc. Lorsque MCS importe un service, il crée:

  • Une ressource personnalisée ServiceImport utilisant le même espace de noms et le même nom que le service.
  • Un objet Endpoints utilisant le même espace de noms que l'objet Service et un nom aléatoire.

Avantages de l'utilisation de MCS

L'utilisation de MCS vous offre les avantages suivants :

  • Haute disponibilité : l'exécution du même service sur des clusters situés dans plusieurs régions vous offre une tolérance aux pannes supérieure. Si un service d'un cluster n'est pas disponible, la requête peut basculer et être desservie par d'autres clusters. Avec MCS, il est possible de gérer la communication entre les services des clusters afin d'améliorer la disponibilité de vos applications en conteneur.
  • Services avec état et sans état : les services avec état et sans état présentent des complexités et dépendances opérationnelles différentes, ainsi que des compromis opérationnels différents. Généralement, l'absence de gestion d'état facilite le scaling, la mise à niveau et la migration d'une charge de travail avec une plus haute disponibilité. MCS vous permet de séparer les clusters pour les charges de travail avec état et sans état, afin qu'ils soient indépendants, isolés et plus faciles à gérer.
  • Services partagés : il est courant de créer des clusters Kubernetes séparés pour obtenir une plus haute disponibilité, une meilleure gestion des services avec état et sans état et une conformité plus facile avec les exigences de souveraineté des données. Cependant, de nombreux services tels que la surveillance via Prometheus ou l'la gestion des secrets avec Vault sont souvent partagés entre tous les clusters. MCS facilite la configuration des services partagés communs dans un cluster distinct utilisé par tous les clusters fonctionnels. Cela permet ainsi d'éviter que chaque cluster nécessite sa propre instance dupliquée de service locale.
  • Migration : la modernisation d'une application existante vers une architecture basée sur des microservices conteneurisés nécessite souvent de déployer des services sur plusieurs clusters Kubernetes. MCS fournit un mécanisme permettant à ces services de communiquer, facilitant ainsi la migration de vos applications. Ceci est particulièrement utile car vous pouvez déployer le même service sur deux clusters différents et le trafic est autorisé à passer d'un cluster ou d'une application à l'autre.

Étape suivante

  • Apprenez-en plus sur Multi Cluster Ingress, qui fournit des services pour les sens de trafic nord-sud et est-ouest.
  • Apprenez-en plus sur Anthos Service Mesh, qui vous permet de contrôler avec précision le routage et le lissage du trafic.