Anthos Service Mesh 1.6

Injecter des proxys side-car

Anthos Service Mesh utilise des proxys side-car pour améliorer la sécurité, la fiabilité et l'observabilité du réseau. Avec Anthos Service Mesh, ces fonctions sont extraites du conteneur principal de l'application et mises en œuvre dans un proxy commun hors processus fourni sous la forme d'un conteneur distinct dans le même pod. Pour bénéficier pleinement des fonctionnalités d'Anthos Service Mesh, lorsque vous déployez ou redéployez des charges de travail, vous injectez un proxy side-car dans le pod de la charge de travail. Le proxy intercepte tout le trafic entrant et sortant vers les charges de travail et communique avec Anthos Service Mesh.

Activer l'injection side-car automatique

Vous pouvez injecter un proxy side-car manuellement en mettant à jour la configuration Kubernetes de vos pods, ou utiliser l'injection side-car automatique basée sur des webhooks, que nous recommandons. L'injection side-car automatique est désactivée par défaut pour tous les espaces de noms. Pour activer l'injection automatique, vous devez ajouter un libellé à vos espaces de noms. Vous pouvez ajouter le libellé istio-injection=enabled ou utiliser un libellé de révision à la place.

La documentation sur les mises à niveau et les nouvelles installations a été modifiée pour inclure l'argument --revision dans la commande istioctl install. L'argument --revision ajoute un libellé de révision au format istio.io/rev=asm-173-6 au déploiement istiod, aux pods et au service. Le libellé de révision est utilisé par le webhook d'injecteur side-car automatique pour associer les side-cars injectés à une révision istiod particulière. Pour activer l'injection side-car automatique sur un espace de noms, vous devez lui attribuer un libellé associé à une révision correspondant à un déploiement istiod.

Pour déterminer si un libellé de révision est associé au déploiement istiod, procédez comme suit :

kubectl -n istio-system get pods -l app=istiod --show-labels

Dans le résultat, si un libellé est semblable à istio.io/rev=asm-173-6, vous ajoutez le libellé de révision à vos espaces de noms pour activer l'injection side-car automatique. Si le résultat ne comporte pas de libellé de révision, ajoutez le libellé istio-injection=enabled à vos espaces de noms.

Pour activer l'injection automatique à l'aide d'un libellé de révision, exécutez la commande suivante en remplaçant NAMESPACE par le nom de votre espace de noms et ASM_VERSION par le numéro de version indiqué dans le libellé de révision :

kubectl label namespace NAMESPACE istio-injection- istio.io/rev=ASM_VERSION --overwrite

Pour activer l'injection automatique à l'aide du libellé istio-injection=enabled, exécutez la commande suivante en remplaçant NAMESPACE par le nom de votre espace de noms :

kubectl label namespace NAMESPACE istio-injection=enabled --overwrite

Étant donné que les side-cars sont injectés lors de la création des pods, vous devez redémarrer tous les pods en cours d'exécution pour que la modification prenne effet.

Mettre à jour des side-cars pour les pods existants

Avec l'injection automatique de side-car, vous pouvez mettre à jour les side-cars pour les pods existants avec un redémarrage du pod :

Le redémarrage des pods varie selon qu'ils ont été créés dans le cadre d'un déploiement ou non.

  1. Si vous avez utilisé un déploiement, redémarrez le déploiement pour redémarrer tous les pods avec des side-cars :

    kubectl rollout restart deployment -n YOUR_NAMESPACE

    Si vous n'avez pas utilisé de déploiement, supprimez les pods. Ils sont automatiquement recréés avec les side-cars :

    kubectl delete pod -n YOUR_NAMESPACE --all
  2. Vérifiez que tous les pods de l'espace de noms disposent de side-cars injectés :

    kubectl get pod -n YOUR_NAMESPACE

    Dans l'exemple de résultat suivant, qui concerne la commande précédente, la colonne READY indique qu'il existe deux conteneurs pour chacune de vos charges de travail : le conteneur principal et le conteneur du proxy side-car.

    NAME                    READY   STATUS    RESTARTS   AGE
    YOUR_WORKLOAD           2/2     Running   0          20s
    ...
    

Étapes suivantes

En savoir plus :