Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Install a sidecar proxy

Dernière mise à jour :Aug 11, 2026

Lorsque plusieurs services communiquent au sein d'un cluster Kubernetes, vous devez centraliser la gestion des fonctionnalités réseau telles que l'équilibrage de charge, la découverte de services, le contrôle du trafic, les nouvelles tentatives et les délais d'expiration, sans modifier le code de l'application. Alibaba Cloud Service Mesh (ASM) résout ce problème en injectant un proxy sidecar (une instance Envoy) à côté de chaque conteneur d'application. Le proxy sidecar intercepte tout le trafic entrant et sortant et applique les règles de routage ainsi que les politiques de gouvernance des services que le plan de contrôle Istio transmet en temps réel. Chaque service de votre application nécessite l'exécution d'un proxy sidecar dans son pod.

Pour ajouter des proxys sidecar à vos charges de travail, ajoutez un libellé à un namespace pour activer l'injection automatique, puis redémarrez les pods de ce namespace.

Fonctionnement de l'injection

Lorsque vous activez l'injection de proxy sidecar pour un namespace, ASM enregistre un webhook d'admission mutatif Kubernetes. À chaque création d'un pod dans ce namespace, le webhook ajoute un conteneur istio-proxy au pod. Après l'injection, un pod exécute deux conteneurs :

  • Conteneur d'application : votre service

  • Conteneur de proxy sidecar (istio-proxy) : une instance Envoy qui intercepte tout le trafic HTTP entrant et sortant et communique avec le composant Pilot sur le plan de contrôle Istio

Comme l'injection a lieu lors de la création du pod, les pods existants ne reçoivent pas de proxy sidecar tant que vous ne les avez pas redémarrés.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une instance ASM avec un cluster Kubernetes ajouté au maillage

  • kubectl configuré pour se connecter au cluster

  • Les permissions nécessaires pour ajouter des libellés aux namespaces et redémarrer les charges de travail

Étape 1 : Activer l'injection automatique de proxy sidecar

Par défaut, l'injection automatique de proxy sidecar est désactivée pour tous les namespaces. Vous pouvez injecter manuellement un proxy sidecar en mettant à jour la configuration Kubernetes du pod correspondant, ou utiliser la fonctionnalité d'injection automatique. Pour activer l'injection automatique, ajoutez un libellé au namespace cible :

kubectl label namespace <namespace> istio-injection=enabled --overwrite

Remplacez <namespace> par le namespace de votre application. Si vous ne spécifiez pas ce paramètre, le namespace default est utilisé.

Vérifiez le libellé :

kubectl get namespace <namespace> --show-labels

La sortie doit inclure istio-injection=enabled.

Remarque

Vous pouvez également activer l'injection de proxy sidecar via la console ASM. Pour plus d'informations, consultez la rubrique Gérer les namespaces globaux.

Étape 2 : Redémarrer les pods pour déclencher l'injection

Les proxys sidecar sont injectés uniquement lors de la création des pods. Pour injecter des proxys sidecar dans des charges de travail existantes, redémarrez-les.

Redémarrer un déploiement (recommandé)

Utilisez kubectl rollout restart pour effectuer un redémarrage progressif. Cette opération remplace graduellement les anciens pods par de nouveaux pods incluant le proxy sidecar :

kubectl rollout restart deployment <deployment-name> -n <namespace>

Redémarrer un pod spécifique

Pour redémarrer un pod individuel, exécutez la commande suivante :

kubectl get pod <pod-name> -n <namespace> -o yaml | kubectl replace --force -f -
Important

Cette commande force la suppression et la recréation du pod, ce qui entraîne une brève interruption du trafic pour ce pod. Testez cette approche dans un environnement hors production au préalable pour vérifier que votre service tolère l'interruption. Effectuez plusieurs redémarrages pour confirmer la stabilité avant d'appliquer cette méthode en production.

Étape 3 : Vérifier l'injection du proxy sidecar

Après le redémarrage, confirmez que le proxy sidecar a bien été injecté.

Vérifier la colonne READY

Exécutez la commande suivante :

kubectl get pods -n <namespace>

Avant l'injection, les pods affichent 1/1 dans la colonne READY (conteneur d'application uniquement). Après l'injection, les pods affichent 2/2 (conteneur d'application + conteneur de proxy sidecar) :

NAME                          READY   STATUS    RESTARTS   AGE
my-app-6b7d8f9c4d-abc12      2/2     Running   0          30s
my-app-6b7d8f9c4d-def34      2/2     Running   0          28s

Si un pod affiche toujours 1/1, vérifiez que le libellé du namespace est correctement défini et que le pod a été créé après l'ajout du libellé.

Confirmer la présence du conteneur istio-proxy

Pour une vérification détaillée, décrivez un pod spécifique :

kubectl describe pod <pod-name> -n <namespace>

Recherchez istio-proxy dans la section Containers de la sortie. Le conteneur istio-proxy correspond au proxy sidecar Envoy. Sa présence confirme que le pod fait partie du plan de données ASM.

Étapes suivantes