Une passerelle d'entrée est le point d'accès unique du trafic externe vers votre maillage de services. Elle utilise l'équilibrage de charge de couche 7 pour acheminer les requêtes vers les services backend en fonction des attributs HTTP, tels que le chemin d'URL et l'en-tête host.
Une fois la passerelle opérationnelle, configurez les règles de routage Istio pour diriger le trafic vers des services spécifiques.
Prérequis
Créer une passerelle d'entrée dans la console ASM
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez ASM Gateways > Ingress Gateway.
-
Sur la page Ingress Gateway, cliquez sur Create et configurez les paramètres suivants.
Pour utiliser YAML à la place, cliquez sur Create from YAML . Gérer la passerelle d'entrée via KubeAPI .
Si votre cluster sur le plan de données est un cluster enregistré et que vous sélectionnez LoadBalancer , assurez-vous que le cluster prend en charge les services LoadBalancer. Sinon, la création de la passerelle d'entrée échouera.
ImportantAttribuez un équilibreur de charge dédié à chaque service Kubernetes. Le partage d'un équilibreur de charge présente les risques suivants : - La réutilisation d'un équilibreur de charge existant écrase ses écouteurs, ce qui peut rendre votre application inaccessible. - Seuls les équilibreurs de charge créés manuellement dans la console ou via l'API peuvent être réutilisés. Les équilibreurs de charge créés par Kubernetes ne peuvent pas être réutilisés. - Les services qui partagent un équilibreur de charge ne peuvent pas utiliser le même port d'écoute frontal. Les conflits de ports entraînent des pannes de service. - Les noms des écouteurs et des groupes de serveurs virtuels sont des identifiants uniques pour Kubernetes. Ne les modifiez pas. - La réutilisation d'équilibreurs de charge entre clusters et entre régions n'est pas prise en charge.
Paramètre Description Name Nom de la passerelle d'entrée. Cluster Cluster dans lequel déployer la passerelle d'entrée. Service Type Type de service Kubernetes. Valeurs possibles : LoadBalancer, ClusterIP et NodePort. Consultez Service. CLB / NLB Requis lorsque Service Type est défini sur LoadBalancer. Valeurs possibles : Internet Access et Private Access. Create LoadBalancer Instance Requis lorsque Service Type est défini sur LoadBalancer. Create LoadBalancer Instance -- Pour CLB, sélectionnez une spécification dans Select CLB Specifications. Pour NLB, sélectionnez des vSwitches dans au moins deux zones depuis Select Zones for NLB Instance. Use Existing SLB Instance -- Sélectionnez un équilibreur de charge existant. Consultez les risques liés au partage d'équilibreur de charge ci-dessous. Port Mapping Définissez Protocol et Service Port. Deux ports Istio par défaut sont préconfigurés. Modifiez-les si nécessaire. Resources Limits Limites de CPU et de mémoire pour le pod de la passerelle d'entrée. Gateway instances Nombre de réplicas de pods pour la passerelle d'entrée. -
(Facultatif) Cliquez sur Advanced Options pour configurer les paramètres de mise à l'échelle, de mise à jour et de disponibilité.
Les fonctionnalités marquées (Enterprise/Ultimate Edition) nécessitent l'édition Enterprise ou Ultimate.
Paramètre Description External Traffic Policy Contrôle la distribution du trafic externe. Local : achemine le trafic uniquement vers les pods situés sur le nœud récepteur. Cluster : autorise le routage vers des pods situés sur d'autres nœuds. HPA(Enterprise/Ultimate Edition) Active l'autoscaler horizontal de pods (HPA). Définissez les Monitoring items et le Threshold pour le CPU ou la mémoire. Les réplicas augmentent lorsque l'une des métriques dépasse son seuil et diminuent lorsque les deux tombent en dessous. Définissez le nombre de Maximum replicas et le Minimum number of replicas pour définir la plage de mise à l'échelle. Rolling Upgrade Configure le comportement de la mise à jour progressive. Maximum number of unavailable instances : nombre maximal de pods pouvant être indisponibles pendant une mise à jour progressive. Exceeding the desired number of instances : nombre maximal de pods supplémentaires créés pendant une mise à jour progressive. Par exemple, 25 % signifie que le nombre total de réplicas ne peut pas dépasser 125 % du nombre souhaité. Enable MultiBuffer-based TLS encryption and decryption performance optimization(Enterprise/Ultimate Edition) Accélère le chiffrement et le déchiffrement TLS avec MultiBuffer. supported nodeaffinity : sélectionnez les libellés de nœud pour l'étendue de l'optimisation. Poll Delay(ms) : délai d'interrogation pour réduire le temps d'attente MultiBuffer avant le traitement des requêtes. Consultez la description des paramètres. Deploy ASM Gateway replicas as widely as possible Utilise podAntiAffinitypour déployer de préférence les pods de la passerelle sur différents nœuds, améliorant ainsi la disponibilité.Custom Deployment Policy Configure les champs nodeSelector,tolerationsetaffinitypour la passerelle. Consultez la description CRD de la passerelle ASM.Graceful Shutdown(Enterprise/Ultimate Edition) Garantit que les requêtes en cours se terminent avant la suppression d'un pod. Connection timeout (seconds) : durée pendant laquelle l'équilibreur de charge attend après la suppression d'un pod avant de déconnecter les connexions existantes. Le temps d'arrêt gracieux par défaut du pod de la passerelle est de 30 secondes. Définissez cette valeur à 30 secondes ou moins. Cliquez sur Create.
Vérifier le résultat
Après la création, l'état de la passerelle passe à Running sur la page Ingress Gateway. La colonne Service address affiche l'adresse IP de la passerelle.
Gérer la passerelle d'entrée
Modifier ou afficher la passerelle
Sur la page Ingress Gateway, localisez la passerelle cible et effectuez l'une des actions suivantes :
Cliquez sur View Details pour modifier la configuration de la passerelle.
Cliquez sur Edit YAML pour ouvrir la boîte de dialogue Edit. Modifiez les champs et cliquez sur OK. Consultez la description CRD de la passerelle ASM.
Supprimer la passerelle
Sur la page Ingress Gateway, localisez la passerelle cible et cliquez sur Delete. Dans la boîte de dialogue Submit, cliquez sur OK.
Une fois une passerelle d'entrée supprimée, le trafic externe ne peut plus atteindre les services via cette passerelle. Cette action est irréversible.
Afficher la passerelle dans la console ACK
Afficher les informations de base :
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, choisissez Network > Services.
Sur la page Services, sélectionnez istio-system dans la liste déroulante Namespace.
La colonne External IP affiche l'adresse IP de la passerelle d'entrée.
Afficher les informations des pods :
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, choisissez Workloads > Pods.
Sur la page Pods, sélectionnez Istio-system dans la liste déroulante Namespace.
Cliquez sur le pod cible pour afficher ses détails.
Étapes suivantes
Pour exposer des services via la passerelle, configurez des règles de routage. Consultez Utiliser les ressources Istio pour acheminer le trafic vers différentes versions d'un service.
Pour centraliser le trafic sortant, créez une passerelle de sortie.
Pour surveiller le trafic interservices, utilisez Mesh Topology pour afficher la topologie d'une application.
Consultez la présentation des passerelles ASM.
Pour créer la passerelle par programmation, appelez CreateASMGateway.