Module complémentaire de maillage de services basé sur Istio pour Azure Kubernetes Service

Istio répond aux problématiques auxquelles sont confrontés les développeurs et les opérateurs avec une architecture distribuée ou de microservices. Le module complémentaire de maillage de services basé sur Istio fournit une intégration officiellement prise en charge et testée pour Azure Kubernetes Service (AKS).

Qu’est-ce qu’un maillage de services ?

Les applications modernes sont généralement conçues comme des collections distribuées de microservices, chaque collection de microservices réalisant une fonction métier discrète. Un maillage de services est une couche d’infrastructure dédiée que vous pouvez ajouter à vos applications. Il vous permet d’ajouter de façon transparente des fonctionnalités comme l’observabilité, la gestion du trafic et la sécurité, sans les ajouter à votre propre code. Le terme maillage de services décrit à la fois le type de logiciel que vous utilisez pour implémenter ce modèle, et le domaine de sécurité ou réseau qui est créé quand vous utilisez ce logiciel.

À mesure que le déploiement de services distribués, comme dans un système Kubernetes, augmente en taille et en complexité, il peut devenir plus difficile à comprendre et à gérer. Il peut être nécessaire d’implémenter des fonctionnalités comme la découverte, l’équilibrage de charge, la récupération après défaillance, des métriques et la supervision. Un maillage de services peut également répondre à des exigences opérationnelles plus complexes, comme les tests A/B, les déploiements Canary, la limitation de débit, le contrôle d’accès, le chiffrement et l’authentification de bout en bout.

La communication de service à service est ce qui rend possible une application distribuée. Le routage de cette communication, à la fois à l’intérieur et entre les clusters d’applications, devient de plus en plus complexe à mesure que le nombre de services augmente. Istio aide à réduire cette complexité tout en réduisant la pression sur les équipes de développement.

Qu’est-ce qu’Istio ?

Istio est un maillage de services open source qui s’intègre de façon transparente aux applications distribuées existantes. Les fonctionnalités puissantes d’Istio offrent un moyen uniforme et plus efficace de sécuriser, connecter et superviser les services. Istio permet l’équilibrage de charge, l’authentification de service à service et la supervision , avec peu ou pas de modifications du code du service. Son plan de contrôle puissant apporte des fonctionnalités vitales, notamment :

  • Sécuriser la communication de service à service dans un cluster avec le chiffrement TLS, et une authentification et une autorisation fortes basées sur l’identité.
  • Équilibrage de charge automatique pour le trafic HTTP, gRPC, WebSocket et TCP.
  • Contrôle précis du comportement du trafic avec des règles de routage riches, nouvelles tentatives, basculements et injection de pannes.
  • Une couche de stratégie enfichable et une API de configuration prenant en charge les contrôles d’accès, les limites de débit et les quotas.
  • Métriques, journaux et traces automatiques pour tout le trafic au sein d’un cluster, y compris l’entrée et la sortie du cluster.

En quoi le module complémentaire est-il différent d’Istio open source ?

Ce module complémentaire de maillage de services utilise et s’appuie sur Istio open source. Le module complémentaire offre les avantages supplémentaires suivants :

  • Les versions d’Istio sont testées et vérifiées quant à la compatibilité avec les versions prises en charge d’Azure Kubernetes Service.
  • Microsoft gère la mise à l’échelle et la configuration du plan de contrôle Istio
  • Microsoft ajuste la mise à l’échelle des composants d’AKS, comme coredns, quand Istio est activé.
  • Microsoft fournit un cycle de vie managé (des mises à niveau) pour les composants d’Istio quand elles sont déclenchées par l’utilisateur.
  • Configuration d’entrée externe et interne vérifiée.
  • Utilisation vérifiée avec le service managé Azure Monitor pour Prometheus et Azure Managed Grafana.
  • Support Azure officiel fourni pour le module complémentaire.

Limites

Le module complémentaire de maillage de services basé sur Istio pour AKS a les limitations suivantes :

  • Le module complémentaire ne fonctionne pas sur les clusters AKS qui utilisent le module complémentaire Open Service Mesh pour AKS.
  • Le module complémentaire ne fonctionne pas sur les clusters AKS où Istio est déjà installé en dehors de l’installation du module complémentaire.
  • Le module complémentaire ne prend pas en charge l’ajout de pods associés à des nœuds virtuels devant être ajoutés sous le maillage.
  • Istio ne prend pas en charge les conteneurs Windows Server.
  • La personnalisation du maillage en fonction des ressources personnalisées suivantes est bloquée pour l’instant - EnvoyFilter, ProxyConfig, WorkloadEntry, WorkloadGroup, Telemetry, IstioOperator, WasmPlugin
  • L’API de la passerelle d’entrée Istio ou la gestion du trafic de maillage (GAMMA) ne sont pas encore prises en charge avec le module complémentaire Istio.

Étapes suivantes