For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

Sidecar
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 :

Composant
Namespace
Rôle
Mode

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.

Les pods existants n'ont pas besoin d'être redémarrés. Le ztunnel les prend en charge immédiatement.

É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 :

Le service gateway auto-provisionné sera nommé bookinfo-gateway-istio dans le namespace default.

É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 :

Alternative — chemin d'ingress dédié : Définissez networking.istio.io/service-type: NodePort sur votre ressource Gateway (Étape 4) et demandez à l'équipe plateforme de créer un virtual server BigIP dédié. Cela offre à votre application un chemin d'ingress totalement indépendant, sans passer par l'istio-ingressgateway partagé.

É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