Istio sur GKE

Istio sur GKE est un module complémentaire pour GKE qui vous permet de créer rapidement un cluster avec tous les composants dont vous avez besoin pour créer et exécuter un maillage de services Istio, en une seule étape. Une fois installés, les composants de votre plan de contrôle Istio sont automatiquement mis à jour, sans que vous ayez à vous soucier de la mise à niveau vers de nouvelles versions. Vous pouvez également utiliser le module complémentaire pour installer Istio sur un cluster existant.

Qu'est-ce qu'Istio ?

Istio est un maillage de services Open Source offrant une méthode uniforme pour connecter, gérer et sécuriser des microservices. Il peut gérer les flux de trafic entre les différents services, appliquer des stratégies d'accès et agréger les données de télémétrie, sans nécessiter la moindre modification de votre code.

Istio vous offre les avantages suivants :

  • Équilibrage de charge automatique pour le trafic HTTP, gRPC, WebSocket, MongoDB et TCP
  • Contrôle affiné du trafic avec des règles de routage avancées, des nouvelles tentatives, des basculements et l'injection de pannes
  • Couche de stratégie configurable et API acceptant les contrôles d'accès, les limites de débit et les quotas
  • Métriques, journaux et traces automatiques pour l'intégralité du trafic au sein d'un cluster, y compris les entrées et sorties de cluster
  • Communication sécurisée de service à service dans un cluster avec authentification et autorisation basées sur une identité forte

Pour configurer le contrôle des accès et les règles de routage Istio, utilisez l'API Kubernetes personnalisée via la commande kubectl ou l'outil de ligne de commande Istio istioctl, qui offre une validation supplémentaire.

Pour en savoir plus sur Istio, consultez notre présentation et la documentation Open Source complète sur istio.io.

Qu'est-ce qu'Istio sur GKE ?

Istio sur GKE est un outil qui permet d'installer et de mettre à niveau automatiquement Istio dans votre cluster GKE. Lorsque vous mettez à niveau GKE, le module complémentaire est automatiquement mis à niveau vers la version la plus récente d'Istio compatible avec GKE. Ainsi, vous pouvez gérer facilement l'installation et la mise à niveau d'Istio au cours du cycle de vie des clusters GKE.

Il est important de noter que, lorsque vous utilisez Istio sur GKE, Istio s'exécute au sein de votre cluster. Aucun contrat de niveau de service n'est appliqué aux composants Istio exécutés dans le cluster.

Dois-je utiliser Istio sur GKE ?

Lorsque le module complémentaire Istio sur GKE gère l'installation et la mise à niveau, il utilise des options d'installation par défaut pour le plan de contrôle qui sont adaptées à la plupart des besoins. Cependant, vous devez tenir compte des limites suivantes :

  • La version d'Istio installée est liée à la version de GKE. Vous ne pouvez donc pas les mettre à jour indépendamment.

  • La configuration du plan de contrôle est soumise à des limites strictes. Vous devez examiner ces limites avant d'utiliser le module complémentaire Istio sur GKE en production.

Si vous devez utiliser une version Open Source plus récente d'Istio ou si vous souhaitez contrôler davantage la configuration de votre plan de contrôle Istio (ce qui peut arriver dans certains cas d'utilisation en production), nous vous recommandons d'utiliser la version Open Source d'Istio au lieu du module complémentaire Istio sur GKE.

Si vous ne souhaitez plus utiliser notre fonctionnalité d'installation automatique pour une raison quelconque, vous pouvez désinstaller le module complémentaire. Consultez la page Désinstaller Istio sur GKE pour obtenir la marche à suivre.

Quels composants sont installés ?

Lorsque vous créez ou mettez à jour un cluster à l'aide d'Istio sur GKE, les composants principaux d'Istio suivants sont installés :

  • Pilot, responsable de la détection de services et de la configuration des proxys side-car Envoy pour gérer le trafic du maillage de services.
  • Les composants Mixer Istio-Policy et Istio-Telemetry, qui appliquent des règles d'utilisation et collectent des données de télémétrie sur l'ensemble du maillage de services.
  • La passerelle d'entrée Istio, qui fournit un point d'entrée pour le trafic provenant de l'extérieur du cluster.
  • (Versions 1.0 d'Istio uniquement)) La passerelle de sortie Istio, qui permet d'appliquer les fonctionnalités d'Istio telles que la surveillance et les règles de routage au trafic sortant du maillage. La passerelle de sortie Istio n'est pas installée par défaut dans les versions 1.1 et ultérieures.
  • Citadel, qui automatise la gestion des clés et des certificats pour Istio.
  • Galley, qui fournit des services de gestion de configuration pour Istio.

L'installation vous permet également d'ajouter le proxy side-car Istio aux charges de travail de votre service, qui peuvent ainsi communiquer avec le plan de contrôle et être associées au maillage Istio.

Pour en savoir plus sur l'installation et la désinstallation du module complémentaire, ainsi que sur les options d'installation, consultez la page Installer Istio sur GKE.

Assistance Cloud Monitoring

Pour les clusters sur lesquels Google Kubernetes Engine Monitoring est activé, l'adaptateur Istio Stackdriver est installé avec les composants principaux décrits ci-dessus. L'adaptateur peut envoyer des métriques, des journaux et des données de trace de votre maillage à Cloud Logging, Cloud Monitoring ou Cloud Trace pour permettre l'observabilité du comportement de vos services dans Google Cloud Console. Une fois que vous avez activé une fonctionnalité Cloud Logging, Cloud Monitoring ou Cloud Trace spécifique pour votre projet et votre cluster, ces données sont envoyées par défaut depuis le maillage. Notez que le module complémentaire Istio sur GKE définit automatiquement les niveaux d'accès dans le pool de nœuds du cluster pour Cloud Monitoring, Logging et Trace.

Monitoring

Si l'API Cloud Monitoring est activée dans votre projet Google Cloud, votre maillage Istio envoie automatiquement les métriques associées à vos services (par exemple, le nombre d'octets reçus par un service particulier) à Monitoring, où elles s'affichent dans l'explorateur de métriques. Ces métriques vous permettent de créer des tableaux de bord et des alertes personnalisés. Vous pouvez ainsi surveiller vos services au fil du temps et recevoir des alertes lorsqu'un service est sur le point d'atteindre un certain nombre de requêtes, par exemple. Vous pouvez également combiner ces métriques à l'aide de filtres et d'agrégations avec les métriques intégrées de Monitoring pour obtenir de nouvelles informations sur le comportement de votre service.

Pour afficher les métriques d'une ressource surveillée à l'aide de l'explorateur de métriques, procédez comme suit :

  1. Dans Google Cloud Console, accédez à Surveillance ou utilisez le bouton suivant :
    Accéder à Surveillance
  2. Dans le volet de navigation "Surveillance", cliquez sur  Explorateur de métriques.
  3. Saisissez le nom de la ressource surveillée dans la zone de texte Rechercher un type de ressource et une métrique.

Pour obtenir la liste complète des métriques Istio, consultez la documentation Cloud Monitoring.

Logging

Si l'API Cloud Logging est activée dans votre projet Google Cloud, votre maillage Istio envoie automatiquement des journaux à Logging, où ils s'affichent dans la visionneuse de journaux. Consultez la documentation Cloud Logging pour savoir ce que vous pouvez faire avec les données de journal (par exemple, exporter des journaux vers BigQuery).

Traçage

Vous pouvez activer Cloud Trace pour que votre maillage Istio envoie automatiquement des données de trace à Cloud Trace, où elles s'affichent dans le lecteur de traces. Notez que pour exploiter au mieux le traçage distribué afin d'identifier les goulots d'étranglement qui affectent vos performances, vous devez modifier vos charges de travail pour configurer des en-têtes de traçage. Consultez le guide Istio sur le traçage distribué pour obtenir la marche à suivre.

Fonctionnement du processus de mise à niveau

Le cycle de vie d'Istio est géré dans le cadre du processus de mise à niveau de GKE. Deux processus de mise à niveau sont disponibles dans GKE :

  • Mise à niveau du maître : le processus de mise à niveau du maître est automatique et met à jour les composants du plan de contrôle Kubernetes (serveur d'API, programmeur, gestionnaire du contrôleur, etc.) sur le nœud maître ainsi que sur les modules complémentaires. La mise à niveau des composants du plan de contrôle Istio est gérée dans le cadre de ce processus.
  • Mise à niveau des nœuds : le processus de mise à niveau des nœuds peut être automatique (activation recommandée) ou manuel. Il permet de mettre à jour les composants Kubernetes sur les nœuds de calcul afin qu'ils soient synchronisés avec la même version du nœud maître. La mise à niveau du side-car Istio est gérée dans le cadre de ce processus.

Istio sur GKE met automatiquement à jour le plan de contrôle vers une version stable récente (pas nécessairement la dernière). La version est sélectionnée en fonction de la stabilité et des performances observées dans les déploiements Open Source sur une période donnée. Les mises à niveau de la version sont annoncées à l'avance sur le groupe istio-gke-announce. En général, ces mises à niveau sont déployées de manière progressive dans toutes les versions de GKE sur une période de deux semaines ou plus, en commençant par la version la plus récente.

La rétrocompatibilité des versions du plan de contrôle est testée à l'aide des deux dernières versions précédentes du plan de données (proxy side-car). Une fois que vous avez mis à niveau votre cluster GKE, nous vous recommandons dès que possible de mettre à jour les side-cars vers la version actuelle du plan de contrôle, soit en redémarrant les pods (en activant l'injection automatique), soit en réinjectant manuellement la version appropriée.

Istio sur GKE n'autorise pas les utilisateurs à contrôler la version du plan de contrôle.

Modifier les paramètres du plan de contrôle

Étant donné qu'Istio sur GKE contrôle la manière dont votre plan de contrôle est installé et mis à niveau, il ne vous permet pas de modifier la plupart des paramètres de configuration du plan de contrôle fournis dans notre installation. Vous pouvez afficher les options d'installation par défaut dans les fichiers manifestes de la version d'Istio sur GKE associée à des libellés (le fichier manifeste appliqué dépend du mode mTLS choisi et des paramètres de Cloud Logging, Cloud Monitoring ou Cloud Trace). Par exemple, les options d'installation de la version 1.0.3-gke.3 sont disponibles dans la console sous storage/browser/gke-release/istio/release/1.0.3-gke.3/manifests/. Toute modification de ces options, autres que les paramètres spécifiés ci-dessous, est annulée par le gestionnaire de modules complémentaires Kubernetes. Les options non modifiables sont rétablies toutes les minutes.

Les paramètres que vous pouvez (et, pour les installations de production, que vous devez) configurer lors de l'utilisation du module complémentaire sont les suivants :

  • Scaling horizontal des composants du plan de contrôle, en utilisant l'autoscaling ou en définissant manuellement le nombre d'instances dupliquées
  • Requêtes de ressources pour les conteneurs du plan de contrôle
  • Budgets d'interruption de pods pour les déploiements devant rester disponibles lors des mises à niveau, tels que la passerelle d'entrée Istio fournie

Pour savoir comment configurer ces paramètres, consultez la section Configurer le plan de contrôle.

Dans chaque cas, les paramètres que vous spécifiez sont conservés lorsque le module complémentaire met à jour votre installation.

Étape suivante