Istio
Démarrage avec Istio sur cegedim.cloud — modes sidecar et ambient mesh
Istio supporte la Gateway API comme modèle d'ingress et de gestion du trafic principal. Il peut être utilisé comme unique stack ingress (choisi à la création du cluster) ou installé en complément sur des clusters utilisant NGF ou Traefik.
Ce guide couvre les deux modes de fonctionnement : sidecar et ambient. Utilisez le tableau comparatif ci-dessous pour choisir le mode adapté à votre workload.
Mode Sidecar vs Mode Ambient
Emplacement du proxy
Injecté en tant que conteneur à l'intérieur de chaque pod
Fonctionne comme un ztunnel au niveau du nœud, hors des pods
Enrôlement
Label istio-injection=enabled sur le namespace, les pods doivent redémarrer
Label istio.io/dataplane-mode=ambient, pas de redémarrage nécessaire
Gestion du trafic L7
Intégrée — le sidecar la gère directement
Nécessite un waypoint proxy
Overhead ressources
CPU/mémoire par pod pour chaque sidecar Envoy
ztunnel partagé par nœud
VirtualService / DestinationRule
Natif
Via waypoint uniquement
CRDs Gateway API requis
Non
Oui
Ce que la plateforme fournit
Vous n'avez pas besoin d'installer ou de configurer quoi que ce soit au niveau du cluster. Les composants suivants sont déployés et gérés par l'équipe plateforme :
Istiod
istio-system
Plan de contrôle
Les deux
istio-ingressgateway
istio-ingress
Point d'entrée ingress nord-sud
Les deux
Istio CNI
istio-system
Enrôlement des pods en mode ambient
Ambient uniquement
ztunnel
istio-system
mTLS L4 / proxy au niveau du nœud
Ambient uniquement
Chaque cluster cegedim.cloud est fronté par un load balancer F5 BigIP qui gère le DNS wildcard (*.{{ cluster-name }}.ccs.cegedim.cloud), la terminaison TLS et le forwarding L4 vers les pods istio-ingressgateway. Remplacez {{ cluster-name }} par le nom réel de votre cluster (ex. prod-paris, staging-lyon) dans tous les exemples ci-dessous.
Mode Sidecar
En mode sidecar, un conteneur proxy Envoy est injecté aux côtés de chacun de vos pods applicatifs. Il gère le mTLS, l'observabilité et la gestion du trafic L7 directement — aucun waypoint proxy supplémentaire n'est nécessaire.
Étape 1 — Addons d'observabilité (optionnel)
Déployer Prometheus et Kiali pour les métriques et la visualisation de la topologie :
Exposer Kiali via la gateway d'ingress plateforme :
Kiali sera disponible à l'adresse https://kiali.{{ cluster-name }}.ccs.cegedim.cloud.
Étape 2 — Activer l'injection du sidecar
Labelliser votre namespace pour activer l'injection automatique du sidecar Envoy :
Vérifier :
La sortie attendue inclut istio-injection=enabled.
Étape 3 — Déployer votre application
Vérifier que tous les pods tournent avec 2 conteneurs chacun (app + sidecar Envoy) :
La sortie attendue affiche 2/2 READY pour chaque pod :
Étape 4 — Connecter l'ingress depuis la gateway plateforme
Flux d'ingress complet :
Étape 5 — Vérifier
Étape 6 — Observabilité avec Kiali
Accédez à https://kiali.{{ cluster-name }}.ccs.cegedim.cloud, naviguez vers Graph et sélectionnez le namespace default pour visualiser le trafic en temps réel entre les services.
Générer du trafic continu pour alimenter le graphe :
Étape 7 — Gestion du trafic L7
En mode sidecar, la gestion du trafic L7 est intégrée — le sidecar Envoy gère le routage directement. Aucun waypoint proxy n'est nécessaire.
Définir des subsets avec DestinationRule :
Répartition du trafic avec VirtualService — 90% vers reviews-v1, 10% vers reviews-v3 :
Vérifier dans Kiali — la vue Graph affichera le trafic pondéré vers chaque version.
Nettoyage — Mode Sidecar
Mode Ambient
En mode ambient, il n'y a pas de conteneurs sidecar. Un ztunnel au niveau du nœud gère le mTLS L4 de manière transparente pour tous les pods enrôlés — aucun redémarrage de pod n'est nécessaire. La gestion du trafic L7 nécessite le déploiement d'un waypoint proxy optionnel par namespace.
Étape 1 — Prérequis
CRDs Gateway API (canal expérimental) requis pour l'ambient mesh :
Addons d'observabilité (optionnel) :
Exposer Kiali :
Kiali sera disponible à l'adresse https://kiali.{{ cluster-name }}.ccs.cegedim.cloud.
Étape 2 — Enrôler votre namespace
Labelliser votre namespace pour rejoindre l'ambient mesh. Le ztunnel interceptera automatiquement tout le trafic des pods avec mTLS :
Vérifier :
La sortie attendue inclut istio.io/dataplane-mode=ambient.
Étape 3 — Déployer votre application
Aucune annotation sidecar requise :
Vérifier que tous les pods tournent :
Étape 4 — Exposer votre application via la Gateway API
Créer une ressource Gateway dans votre namespace applicatif. Istiod auto-provisionnera un pod et un service gateway dédiés :
Puis créer une HTTPRoute :
Étape 5 — Connecter l'ingress depuis la gateway plateforme
Soumettre le manifest suivant à l'équipe plateforme (ou l'appliquer vous-même si vous avez accès au namespace istio-ingress) :
Flux d'ingress complet :
Étape 6 — Vérifier
Étape 7 — Observabilité avec Kiali
Accédez à https://kiali.{{ cluster-name }}.ccs.cegedim.cloud, naviguez vers Graph et sélectionnez le namespace default.
Générer du trafic continu pour alimenter le graphe :
Étape 8 — Gestion du trafic L7 avec waypoint
Par défaut, le ztunnel ne gère que le trafic L4 (mTLS, TCP). Pour les fonctionnalités L7 (répartition du trafic, routage par en-têtes, retries), déployez un waypoint proxy dans votre namespace.
Déployer le waypoint :
Vérifier :
Déployer les services par version (requis pour la répartition du trafic) :
Répartition du trafic avec HTTPRoute — pointez parentRefs vers le Service (pas une Gateway). Le waypoint intercepte et applique les règles de routage :
Vérifier dans Kiali — la vue Graph affichera le trafic pondéré vers chaque version.
Nettoyage — Mode Ambient
Pour aller plus loin
Last updated

