Fermer

juillet 9, 2025

Déploiement de la passerelle de sortie à Kubernetes: Istio

Déploiement de la passerelle de sortie à Kubernetes: Istio


De nos jours, dans les architectures de microservices, nous avons commencé à utiliser un maillage de service comme Ce pour gérer et sécuriser le flux de trafic à l’intérieur du cluster Kubernetes, dans Ce Mesh de service Nous utilisons des passerelles entravées et de sortie pour acheminer le trafic entrant et sortant. Dans ce blog, nous examinerons comment nous pouvons utiliser la passerelle de sortie pour acheminer le trafic externe quittant le maillage.

Condition préalable

  • Compréhension de base de Kubernetes et de son réseautage.
  • Le cluster Kubernetes a déjà été configuré avec ISTIO installé.
  • ISTIOCTL doit être installé.

Vous pouvez utiliser la commande ci-dessous pour confirmer que Istio est installé dans votre cluster Kubernetes. Les composants Istio seront affichés comme Istiod.

kubectl get pods -n istio-system

Étape 1: Autoriser l’injection de side-car

Nous devons donc ajouter les étiquettes à l’espace de noms afin que le side-car puisse être en mesure d’injecter. Vous pouvez utiliser la commande ci-dessous pour cela –

kubectl label namespace egress istio-injection=enabled
kubectl label namespace default istio-injection=enabled

Étape 2: Déploiement d’un exemple d’application.

kubectl apply -f https://raw.githubusercontent.com/istio/istio/refs/heads/master/samples/sleep/sleep.yaml

Nous utiliserons cet exemple d’application pour tester le trafic si elle se comporte en profondeur la passerelle de sortie.

Étape 3: Mise à jour de la configuration du maillage

Istio permet par défaut de permettre un trafic d’accès sans restriction aux services externes permet de restreindre en mettant à jour la «sortie sortante» vers «Registry_Only»

kubectl -n istio-system get configmap
kubectl -n istio-system edit configmap istio

Cela ressemblera ci-dessous, vous devez mettre à jour la «piroté

configmap

configmap

Redémarrez le plan de contrôle ISITO afin que les changements entrent en vigueur. Il bloquera tout le trafic de sortie, sauf que les services externes définis dans ServiceEntry seraient autorisés.

Circulation

Circulation

Étape 4: Création d’entrée de service et de service de service

Ainsi, pour permettre le trafic de sortie, nous devons définir l’entrée de service pour ces hôtes.

Service

Service

Remarque: «Exportto» définit l’espace de noms. À l’heure actuelle, c’est réglé à Exportto: [“.” ] ce qui signifie qu’il est applicable à l’espace de noms actuel. Vous pouvez utiliser «*» iStead de «». être applicable à tous les espaces de noms.

Étape 5: Déploiement du déploiement de la passerelle de sortie

Déploiement

Déploiement

Étape 6: Service de déploiement

Service

Service

Étape 7: Déploiement de la passerelle

Déployons la passerelle de sortie en utilisant ci-dessous YAML car ce serait le point de sortie du maillage.

Porte

Porte

Étape 8: Déploiement de destination

Créons une destination de destination car elle définirait l’hôte de destination et le nom de sous-ensemble qui serait référencé par le service virtuel.

Destination

Destination

Étape 9: Déploiement de NetworkPolicy

La stratégie de réseau ci-dessous s’assurerait que notre passerelle de sortie peut recevoir du trafic du plan de contrôle Istio et de l’application d’échantillonnage.

NetworkPolicy

NetworkPolicy

Étape 10: Déploiement de VirtualService

Ainsi, ce service virtuel redirigera le trafic originaire du port de Mesh (Sidecar-Proxy) 80 ou 443 vers la passerelle de sortie puis de l’hôte externe.

VirtualService

VirtualService

Permet de tester le trafic maintenant, pour nous assurer qu’il passe par notre passerelle de sortie –

kubectl exec -it deployment sleep -c sleep -- curl -I https://edition.cnn.com

Ensuite, nous pouvons examiner les journaux pour confirmer si le trafic passe par notre passerelle de sortie.

kubectl logs <Pod-name>  -c istio-proxy

Voici l’exemple de la façon dont les journaux ressembleront

[2025-06-25T23:32:42.892Z] "- - -" 0 - - - "-" 304 6087 101 - "-" "-" "-" "-" "52.7.212.xx:xxx" outbound|443||edition.cnn.co 10.23.43.x:xxxxx 10.23.43.x:xxx 10.23.20.xx:xxxxx edition.cnn.com -

Conclusion

Maintenant, vous avez configuré un moyen sécurisé d’envoyer votre trafic sortant à partir du cluster Kubernetes en utilisant la passerelle de sortie d’Istio. Il ajoute également une couche de sécurité qui aligne également les meilleures pratiques qui devraient être suivies dans les architectures de maillage pour le trafic sortant.

Vous pouvez également référer la documentation officielle d’Istio Egress Gateway – https://istio.io/latest/docs/tasks/traffic-management/egress/egress-gateway

Vous avez trouvé cela utile? PARTAGEZ-LE






Source link