1.10. Activation de l'injection du side-car


Après avoir ajouté les espaces de noms qui contiennent vos services à votre maillage, l'étape suivante consiste à activer l'injection automatique de sidecars dans la ressource Deployment de votre application. Vous devez activer l'injection automatique de sidecars pour chaque déploiement.

Si vous avez installé l'exemple d'application Bookinfo, l'application a été déployée et les sidecars ont été injectées dans le cadre de la procédure d'installation. Si vous utilisez votre propre projet et service, déployez vos applications sur OpenShift Container Platform.

Pour plus d'informations, voir la documentation OpenShift Container Platform, Understanding Deployment and DeploymentConfig objects.

1.10.1. Conditions préalables

1.10.2. Activation de l'injection automatique du side-car

Lors du déploiement d'une application, vous devez opter pour l'injection en configurant l'annotation sidecar.istio.io/inject dans spec.template.metadata.annotations vers true dans l'objet deployment. L'opt-in garantit que l'injection de sidecar n'interfère pas avec d'autres fonctionnalités d'OpenShift Container Platform telles que les builder pods utilisés par de nombreux frameworks au sein de l'écosystème d'OpenShift Container Platform.

Conditions préalables

  • Identifiez les espaces de noms qui font partie de votre maillage de services et les déploiements qui ont besoin d'une injection automatique de sidecar.

Procédure

  1. Pour trouver vos déploiements, utilisez la commande oc get.

    $ oc get deployment -n <namespace>

    Par exemple, pour afficher le fichier de déploiement du microservice "ratings-v1" dans l'espace de noms info, utilisez la commande suivante pour afficher la ressource au format YAML.

    oc get deployment -n info ratings-v1 -o yaml
  2. Ouvrez le fichier YAML de configuration du déploiement de l'application dans un éditeur.
  3. Ajoutez spec.template.metadata.annotations.sidecar.istio/inject à votre Deployment YAML et définissez sidecar.istio.io/inject à true comme indiqué dans l'exemple suivant.

    Exemple d'extrait de info deployment-ratings-v1.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: ratings-v1
      namespace: info
      labels:
        app: ratings
        version: v1
    spec:
      template:
        metadata:
          annotations:
            sidecar.istio.io/inject: 'true'

  4. Enregistrer le fichier de configuration du déploiement.
  5. Ajoutez le fichier au projet qui contient votre application.

    oc apply -n <namespace> -f deployment.yaml

    Dans cet exemple, info est le nom du projet qui contient l'application ratings-v1 et deployment-ratings-v1.yaml est le fichier que vous avez modifié.

    $ oc apply -n info -f deployment-ratings-v1.yaml
  6. Pour vérifier que la ressource a été téléchargée avec succès, exécutez la commande suivante.

    $ oc get deployment -n <namespace> <deploymentName> -o yaml

    Par exemple,

    $ oc get deployment -n info ratings-v1 -o yaml

1.10.3. Validation de l'injection du sidecar

La console Kiali offre plusieurs moyens de vérifier si vos applications, services et charges de travail disposent ou non d'un proxy sidecar.

Figure 1.3. Insigne de side-car manquant

La page Graph affiche un badge de nœud indiquant un Missing Sidecar sur les graphiques suivants :

  • Graphique de l'application
  • Graphique de l'application versionnée
  • Graphique de la charge de travail

Figure 1.4. Icône de side-car manquante

Missing Sidecar icon

La page Applications affiche une icône Missing Sidecar dans la colonne Details pour toutes les applications d'un espace de noms qui n'ont pas de sidecar.

La page Workloads affiche une icône Missing Sidecar dans la colonne Details pour toutes les applications d'un espace de noms qui n'ont pas de sidecar.

La page Services affiche une icône Missing Sidecar dans la colonne Details pour toutes les applications d'un espace de noms qui n'ont pas de sidecar. Lorsqu'il existe plusieurs versions d'un service, la page Service Details permet d'afficher les icônes Missing Sidecar.

La page Workload Details comporte un onglet spécial Logs unifié qui vous permet d'afficher et de corréler les journaux d'application et de proxy. Vous pouvez consulter les journaux Envoy comme un autre moyen de valider l'injection de sidecar pour les charges de travail de vos applications.

La page Workload Details comporte également un onglet Envoy pour toute charge de travail qui est un proxy Envoy ou qui a été injectée avec un proxy Envoy. Cet onglet affiche un tableau de bord Envoy intégré qui comprend des sous-onglets pour Clusters, Listeners, Routes, Bootstrap, Config, et Metrics.

Pour plus d'informations sur l'activation des journaux d'accès à Envoy, voir la section Dépannage.

Pour plus d'informations sur l'affichage des journaux Envoy, voir Affichage des journaux dans la console Kiali

1.10.4. Définition de variables d'environnement de proxy par le biais d'annotations

La configuration des mandataires Envoy sidecar est gérée par le site ServiceMeshControlPlane.

Vous pouvez définir des variables d'environnement pour le proxy sidecar des applications en ajoutant des annotations pod au déploiement dans le fichier injection-template.yaml. Les variables d'environnement sont injectées dans le sidecar.

Exemple injection-template.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: resource
spec:
  replicas: 7
  selector:
    matchLabels:
      app: resource
  template:
    metadata:
      annotations:
        sidecar.maistra.io/proxyEnv: "{ \"maistra_test_env\": \"env_value\", \"maistra_test_env_2\": \"env_value_2\" }"

Avertissement

Vous ne devez jamais inclure les étiquettes et les annotations de maistra.io/ lorsque vous créez vos propres ressources personnalisées. Ces étiquettes et annotations indiquent que les ressources sont générées et gérées par l'opérateur. Si vous copiez le contenu d'une ressource générée par l'opérateur lorsque vous créez vos propres ressources, n'incluez pas d'étiquettes ou d'annotations commençant par maistra.io/. Les ressources qui incluent ces étiquettes ou annotations seront écrasées ou supprimées par l'opérateur lors de la prochaine réconciliation.

1.10.5. Mise à jour des mandataires sidecar

Afin de mettre à jour la configuration des proxies sidecar, l'administrateur de l'application doit redémarrer les pods d'application.

Si votre déploiement utilise l'injection automatique de sidecar, vous pouvez mettre à jour le modèle de pod dans le déploiement en ajoutant ou en modifiant une annotation. Exécutez la commande suivante pour redéployer les pods :

$ oc patch deployment/<deployment> -p '{"spec":{"template":{"metadata":{"annotations":{"kubectl.kubernetes.io/restartedAt" : "'`date -Iseconds`'" }}}}}

Si votre déploiement n'utilise pas l'injection automatique de sidecars, vous devez mettre à jour manuellement les sidecars en modifiant l'image du conteneur de sidecars spécifiée dans le déploiement ou le pod, puis redémarrer les pods.

1.10.6. Prochaines étapes

Configurez les fonctionnalités de Red Hat OpenShift Service Mesh pour votre environnement.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.