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 (Transport Layer Security), l’authentification forte basée sur l’identité et l’autorisation.
- É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 avec des installations automanagées d’Istio.
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.
Le module complémentaire ne prend pas encore en charge les passerelles en sortie pour le contrôle du trafic sortant.
Le module complémentaire ne prend pas encore en charge le mode Ambient sans sidecar. Microsoft contribue actuellement au flux de travail Ambient dans le cadre de l’open source Istio. L’intégration du produit pour le mode Ambient figure sur la feuille de route et est évaluée en permanence à mesure que le flux de travail Ambient évolue.
Le module complémentaire ne prend pas encore en charge les déploiements multiclusters.
Le module complémentaire ne prend pas encore en charge les conteneurs Windows Server. Les conteneurs Windows Server ne sont pas pris en charge dans Istio open source pour le moment. Le suivi des problèmes que demande cette fonctionnalité se trouve ici.
Pour le moment, la personnalisation des mailles via les ressources personnalisées suivantes est bloquée –
ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin
.Le module complémentaire permet l’utilisation des types de filtres
EnvoyFilter
suivants avec les autres types de filtres bloqués :- Lua (
type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
). - Compresseur (
type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
) - Limite de débit locale (
type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
)
Remarque
Bien que ces
EnvoyFilter
soient autorisés, tout problème résultant d’eux (par exemple, depuis le script Lua ou la bibliothèque de compression) est hors de l’étendue de prise en charge du module complémentaire Istio. Consultez le document de stratégie de support pour plus d’informations sur les catégories de support des fonctionnalités de module complémentaire et des options de configuration Istio.- Lua (
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. Bien que le module complémentaire prenne en charge personnalisation des annotations pour les passerelles d’entrée Istio pour les adresses IP et les balises de service, la configuration du port ou du protocole n’est actuellement pas prise en charge.
Commentaires et demandes de fonctionnalités
Il est possible de formuler des commentaires et des demandes de fonctionnalités pour le module complémentaire Istio en créant des problèmes avec le libellé « service-mesh » sur le référentiel GitHub AKS.
Étapes suivantes
Azure Kubernetes Service