1.9. Ajouter des services à un maillage de services


Après avoir installé la ressource Operators and ServiceMeshControlPlane, ajoutez des applications, des charges de travail ou des services à votre maillage en créant une ressource ServiceMeshMemberRoll et en spécifiant les espaces de noms dans lesquels votre contenu est situé. Si vous disposez déjà d'une application, d'une charge de travail ou d'un service à ajouter à une ressource ServiceMeshMemberRoll, procédez comme suit. Ou, pour installer un exemple d'application appelé Bookinfo et l'ajouter à une ressource ServiceMeshMemberRoll, passez au tutoriel d'installation de l'exemple d'application Bookinfo pour voir comment une application fonctionne dans Red Hat OpenShift Service Mesh.

Les éléments énumérés dans la ressource ServiceMeshMemberRoll sont les applications et les flux de travail gérés par la ressource ServiceMeshControlPlane. Le plan de contrôle, qui comprend les opérateurs de maillage de services, Istiod et ServiceMeshControlPlane, et le plan de données, qui comprend les applications et le proxy Envoy, doivent se trouver dans des espaces de noms distincts.

Note

Après avoir ajouté l'espace de noms à ServiceMeshMemberRoll, l'accès aux services ou aux pods de cet espace de noms ne sera pas accessible aux appelants en dehors du maillage de services.

1.9.1. Création du rouleau de membres Red Hat OpenShift Service Mesh

Le site ServiceMeshMemberRoll dresse la liste des projets qui appartiennent au plan de contrôle du Service Mesh. Seuls les projets listés dans le site ServiceMeshMemberRoll sont affectés par le plan de contrôle. Un projet n'appartient pas à un maillage de services tant que vous ne l'avez pas ajouté au rôle de membre pour un déploiement particulier du plan de contrôle.

Vous devez créer une ressource ServiceMeshMemberRoll nommée default dans le même projet que ServiceMeshControlPlane, par exemple istio-system.

1.9.1.1. Création de la liste des membres à partir de la console web

Vous pouvez ajouter un ou plusieurs projets au rouleau de membres Service Mesh à partir de la console Web. Dans cet exemple, istio-system est le nom du projet de plan de contrôle Service Mesh.

Conditions préalables

  • Un opérateur Red Hat OpenShift Service Mesh installé et vérifié.
  • Liste des projets existants à ajouter au maillage des services.

Procédure

  1. Connectez-vous à la console web de OpenShift Container Platform.
  2. Si vous n'avez pas encore de services pour votre maillage, ou si vous partez de zéro, créez un projet pour vos applications. Ce projet doit être différent de celui où vous avez installé le plan de contrôle Service Mesh.

    1. Naviguez jusqu'à Home Projects.
    2. Saisissez un nom dans le champ Name.
    3. Cliquez sur Create.
  3. Naviguez jusqu'à Operators Installed Operators.
  4. Cliquez sur le menu Project et choisissez dans la liste le projet dans lequel votre ressource ServiceMeshControlPlane est déployée, par exemple istio-system.
  5. Cliquez sur l'opérateur Red Hat OpenShift Service Mesh.
  6. Cliquez sur l'onglet Istio Service Mesh Member Roll.
  7. Cliquez sur Create ServiceMeshMemberRoll
  8. Cliquez sur Members, puis saisissez le nom de votre projet dans le champ Value. Vous pouvez ajouter autant de projets que vous le souhaitez, mais un projet ne peut appartenir qu'à la ressource one ServiceMeshMemberRoll .
  9. Cliquez sur Create.

1.9.1.2. Création du rouleau de membres à partir de l'interface de ligne de commande

Vous pouvez ajouter un projet au site ServiceMeshMemberRoll à partir de la ligne de commande.

Conditions préalables

  • Un opérateur Red Hat OpenShift Service Mesh installé et vérifié.
  • Liste des projets à ajouter au maillage des services.
  • Accès à la CLI OpenShift (oc).

Procédure

  1. Connectez-vous au CLI de OpenShift Container Platform.

    $ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
  2. Si vous n'avez pas encore de services pour votre maillage, ou si vous partez de zéro, créez un projet pour vos applications. Ce projet doit être différent de celui où vous avez installé le plan de contrôle Service Mesh.

    oc new-project <your-project> $ oc new-project <your-project>
  3. Pour ajouter vos projets en tant que membres, modifiez l'exemple YAML suivant. Vous pouvez ajouter autant de projets que vous le souhaitez, mais un projet ne peut appartenir qu'à la ressource one ServiceMeshMemberRoll . Dans cet exemple, istio-system est le nom du projet de plan de contrôle Service Mesh.

    Exemple servicemeshmemberroll-default.yaml

    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: istio-system
    spec:
      members:
        # a list of projects joined into the service mesh
        - your-project-name
        - another-project-name

  4. Exécutez la commande suivante pour télécharger et créer la ressource ServiceMeshMemberRoll dans l'espace de noms istio-system.

    $ oc create -n istio-system -f servicemeshmemberroll-default.yaml
  5. Exécutez la commande suivante pour vérifier que le site ServiceMeshMemberRoll a été créé avec succès.

    $ oc get smmr -n istio-system default

    L'installation est terminée avec succès lorsque la colonne STATUS est Configured.

1.9.2. Ajouter ou supprimer des projets du maillage de services

Vous pouvez ajouter ou supprimer des projets d'une ressource Service Mesh ServiceMeshMemberRoll existante à l'aide de la console Web.

  • Vous pouvez ajouter autant de projets que vous le souhaitez, mais un projet ne peut appartenir qu'à la ressource one ServiceMeshMemberRoll .
  • La ressource ServiceMeshMemberRoll est supprimée lorsque la ressource ServiceMeshControlPlane correspondante est supprimée.

1.9.2.1. Ajouter ou supprimer des projets de la liste des membres à l'aide de la console web

Conditions préalables

  • Un opérateur Red Hat OpenShift Service Mesh installé et vérifié.
  • Une ressource existante ServiceMeshMemberRoll.
  • Nom du projet contenant la ressource ServiceMeshMemberRoll.
  • Noms des projets que vous souhaitez ajouter ou supprimer du maillage.

Procédure

  1. Connectez-vous à la console web de OpenShift Container Platform.
  2. Naviguez jusqu'à Operators Installed Operators.
  3. Cliquez sur le menu Project et choisissez dans la liste le projet dans lequel votre ressource ServiceMeshControlPlane est déployée, par exemple istio-system.
  4. Cliquez sur l'opérateur Red Hat OpenShift Service Mesh.
  5. Cliquez sur l'onglet Istio Service Mesh Member Roll.
  6. Cliquez sur le lien default.
  7. Cliquez sur l'onglet YAML.
  8. Modifiez le YAML pour ajouter ou supprimer des projets en tant que membres. Vous pouvez ajouter autant de projets que vous le souhaitez, mais un projet ne peut appartenir qu'à la ressource one ServiceMeshMemberRoll .
  9. Cliquez sur Save.
  10. Cliquez sur Reload.

1.9.2.2. Ajouter ou supprimer des projets de la liste des membres à l'aide de l'interface CLI

Vous pouvez modifier un rouleau de membres Service Mesh existant à l'aide de la ligne de commande.

Conditions préalables

  • Un opérateur Red Hat OpenShift Service Mesh installé et vérifié.
  • Une ressource existante ServiceMeshMemberRoll.
  • Nom du projet contenant la ressource ServiceMeshMemberRoll.
  • Noms des projets que vous souhaitez ajouter ou supprimer du maillage.
  • Accès à la CLI OpenShift (oc).

Procédure

  1. Connectez-vous au CLI de OpenShift Container Platform.
  2. Modifier la ressource ServiceMeshMemberRoll.

    $ oc edit smmr -n <controlplane-namespace>
  3. Modifiez le YAML pour ajouter ou supprimer des projets en tant que membres. Vous pouvez ajouter autant de projets que vous le souhaitez, mais un projet ne peut appartenir qu'à la ressource one ServiceMeshMemberRoll .

    Exemple servicemeshmemberroll-default.yaml

    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: istio-system #control plane project
    spec:
      members:
        # a list of projects joined into the service mesh
        - your-project-name
        - another-project-name

1.9.3. Exemple d'application Bookinfo

L'application d'exemple Bookinfo vous permet de tester votre installation Red Hat OpenShift Service Mesh 2.3.3 sur OpenShift Container Platform.

L'application Bookinfo affiche des informations sur un livre, à l'instar d'une entrée de catalogue d'une librairie en ligne. L'application affiche une page décrivant le livre, des détails sur le livre (ISBN, nombre de pages et autres informations) et des critiques du livre.

L'application Bookinfo se compose de ces microservices :

  • Le microservice productpage appelle les microservices details et reviews pour remplir la page.
  • Le microservice details contient des informations sur les livres.
  • Le microservice reviews contient des critiques de livres. Il appelle également le microservice ratings.
  • Le microservice ratings contient des informations sur le classement des livres qui accompagnent une critique de livre.

Il existe trois versions du microservice de révision :

  • La version v1 ne fait pas appel au service ratings.
  • La version v2 appelle le service ratings et affiche chaque évaluation sous la forme d'une à cinq étoiles noires.
  • La version v3 appelle le service ratings et affiche chaque évaluation sous la forme d'une à cinq étoiles rouges.

1.9.3.1. Installation de l'application Bookinfo

Ce tutoriel vous explique comment créer un exemple d'application en créant un projet, en déployant l'application Bookinfo dans ce projet et en visualisant l'application en cours d'exécution dans Service Mesh.

Prérequis :

  • OpenShift Container Platform 4.1 ou supérieur installé.
  • Red Hat OpenShift Service Mesh 2.3.3 installé.
  • Accès à la CLI OpenShift (oc).
  • Un compte avec le rôle cluster-admin.
Note

L'application d'exemple Bookinfo ne peut pas être installée sur IBM zSystems et IBM Power.

Note

Les commandes de cette section supposent que le projet de plan de contrôle Service Mesh est istio-system. Si vous avez installé le plan de contrôle dans un autre espace de noms, modifiez chaque commande avant de l'exécuter.

Procédure

  1. Connectez-vous à la console web de OpenShift Container Platform en tant qu'utilisateur disposant des droits cluster-admin. Si vous utilisez Red Hat OpenShift Dedicated, vous devez avoir un compte avec le rôle dedicated-admin.
  2. Cliquez sur Home Projects.
  3. Cliquez sur Create Project.
  4. Saisissez info comme Project Name, saisissez Display Name, et saisissez Description, puis cliquez sur Create.

    • Vous pouvez également exécuter cette commande à partir de l'interface de gestion pour créer le projet info.

      $ oc new-project info
  5. Cliquez sur Operators Installed Operators.
  6. Cliquez sur le menu Project et utilisez l'espace de noms du plan de contrôle Service Mesh. Dans cet exemple, utilisez istio-system.
  7. Cliquez sur l'opérateur Red Hat OpenShift Service Mesh.
  8. Cliquez sur l'onglet Istio Service Mesh Member Roll.

    1. Si vous avez déjà créé un rouleau Istio Service Mesh Member, cliquez sur son nom, puis sur l'onglet YAML pour ouvrir l'éditeur YAML.
    2. Si vous n'avez pas créé de site ServiceMeshMemberRoll, cliquez sur Create ServiceMeshMemberRoll.
  9. Cliquez sur Members, puis saisissez le nom de votre projet dans le champ Value.
  10. Cliquez sur Create pour enregistrer la liste actualisée des membres du Service Mesh.

    1. Vous pouvez également enregistrer l'exemple suivant dans un fichier YAML.

      Bookinfo ServiceMeshMemberRoll exemple servicemeshmemberroll-default.yaml

      apiVersion: maistra.io/v1
      kind: ServiceMeshMemberRoll
      metadata:
        name: default
      spec:
        members:
        - info

    2. Exécutez la commande suivante pour télécharger ce fichier et créer la ressource ServiceMeshMemberRoll dans l'espace de noms istio-system. Dans cet exemple, istio-system est le nom du projet de plan de contrôle Service Mesh.

      $ oc create -n istio-system -f servicemeshmemberroll-default.yaml
  11. Exécutez la commande suivante pour vérifier que le site ServiceMeshMemberRoll a été créé avec succès.

    $ oc get smmr -n istio-system -o wide

    L'installation est terminée avec succès lorsque la colonne STATUS est Configured.

    NAME      READY   STATUS       AGE   MEMBERS
    default   1/1     Configured   70s   ["info"]
  12. Depuis le CLI, déployez l'application Bookinfo dans le projet `info` en appliquant le fichier bookinfo.yaml:

    $ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.3/samples/bookinfo/platform/kube/bookinfo.yaml

    Vous devriez obtenir un résultat similaire à celui qui suit :

    service/details created
    serviceaccount/info-details created
    deployment.apps/details-v1 created
    service/ratings created
    serviceaccount/info-ratings created
    deployment.apps/ratings-v1 created
    service/reviews created
    serviceaccount/info-reviews created
    deployment.apps/reviews-v1 created
    deployment.apps/reviews-v2 created
    deployment.apps/reviews-v3 created
    service/productpage created
    serviceaccount/info-productpage created
    deployment.apps/productpage-v1 created
  13. Créez la passerelle d'entrée en appliquant le fichier info-gateway.yaml:

    $ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.3/samples/bookinfo/networking/bookinfo-gateway.yaml

    Vous devriez obtenir un résultat similaire à celui qui suit :

    gateway.networking.istio.io/info-gateway created
    virtualservice.networking.istio.io/info created
  14. Définir la valeur du paramètre GATEWAY_URL:

    $ export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')

1.9.3.2. Ajout de règles de destination par défaut

Avant de pouvoir utiliser l'application Bookinfo, vous devez d'abord ajouter des règles de destination par défaut. Il existe deux fichiers YAML préconfigurés, selon que vous avez activé ou non l'authentification mutuelle de la couche transport (TLS).

Procédure

  1. Pour ajouter des règles de destination, exécutez l'une des commandes suivantes :

    • Si vous n'avez pas activé TLS mutuel :

      $ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.3/samples/bookinfo/networking/destination-rule-all.yaml
    • Si vous avez activé TLS mutuel :

      $ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.3/samples/bookinfo/networking/destination-rule-all-mtls.yaml

      Vous devriez obtenir un résultat similaire à celui qui suit :

      destinationrule.networking.istio.io/productpage created
      destinationrule.networking.istio.io/reviews created
      destinationrule.networking.istio.io/ratings created
      destinationrule.networking.istio.io/details created

1.9.3.3. Vérification de l'installation de Bookinfo

Pour confirmer que l'exemple d'application Bookinfo a été déployé avec succès, effectuez les étapes suivantes.

Conditions préalables

  • Red Hat OpenShift Service Mesh installé.
  • Suivez les étapes d'installation de l'application d'exemple Bookinfo.

Procédure à partir de l'interface de programmation

  1. Connectez-vous au CLI de OpenShift Container Platform.
  2. Vérifiez que tous les pods sont prêts à l'aide de cette commande :

    $ oc get pods -n info

    Tous les pods devraient avoir un statut de Running. Vous devriez voir une sortie similaire à la suivante :

    NAME                              READY   STATUS    RESTARTS   AGE
    details-v1-55b869668-jh7hb        2/2     Running   0          12m
    productpage-v1-6fc77ff794-nsl8r   2/2     Running   0          12m
    ratings-v1-7d7d8d8b56-55scn       2/2     Running   0          12m
    reviews-v1-868597db96-bdxgq       2/2     Running   0          12m
    reviews-v2-5b64f47978-cvssp       2/2     Running   0          12m
    reviews-v3-6dfd49b55b-vcwpf       2/2     Running   0          12m
  3. Exécutez la commande suivante pour récupérer l'URL de la page produit :

    echo "http://$GATEWAY_URL/productpage"
  4. Copiez et collez le résultat dans un navigateur web pour vérifier que la page du produit Bookinfo est déployée.

Procédure à partir de la console web Kiali

  1. Obtenir l'adresse de la console web de Kiali.

    1. Connectez-vous à la console web de OpenShift Container Platform en tant qu'utilisateur avec les droits cluster-admin. Si vous utilisez Red Hat OpenShift Dedicated, vous devez avoir un compte avec le rôle dedicated-admin.
    2. Naviguez jusqu'à Networking Routes.
    3. Sur la page Routes, sélectionnez le projet de plan de contrôle Service Mesh, par exemple istio-system, dans le menu Namespace.

      La colonne Location affiche l'adresse liée à chaque itinéraire.

    4. Cliquez sur le lien dans la colonne Location pour Kiali.
    5. Cliquez sur Log In With OpenShift. L'écran Kiali Overview présente des tuiles pour chaque espace de noms de projets.
  2. Dans Kiali, cliquez sur Graph.
  3. Sélectionnez info dans la liste Namespace et App graph dans la liste Graph Type.
  4. Cliquez sur Display idle nodes dans le menu Display.

    Cette fonction affiche les nœuds qui sont définis mais qui n'ont pas reçu ou envoyé de demandes. Elle permet de confirmer qu'une application est correctement définie, mais qu'aucun trafic de demande n'a été signalé.

    Kiali displaying info application
    • Utilisez le menu Duration pour augmenter la période de temps afin de vous assurer que le trafic plus ancien est capturé.
    • Utilisez le menu Refresh Rate pour actualiser le trafic plus ou moins souvent, ou pas du tout.
  5. Cliquez sur Services, Workloads ou Istio Config pour afficher la liste des composants d'information et confirmer qu'ils sont sains.

1.9.3.4. Suppression de l'application Bookinfo

Suivez les étapes suivantes pour supprimer l'application Bookinfo.

Conditions préalables

  • OpenShift Container Platform 4.1 ou supérieur installé.
  • Red Hat OpenShift Service Mesh 2.3.3 installé.
  • Accès à la CLI OpenShift (oc).
1.9.3.4.1. Supprimer le projet Bookinfo

Procédure

  1. Connectez-vous à la console web de OpenShift Container Platform.
  2. Cliquez sur Home Projects.
  3. Cliquez sur le menu info kebab puis cliquez sur Delete Project.
  4. Tapez info dans la boîte de dialogue de confirmation, puis cliquez sur Delete.

    • Vous pouvez également exécuter cette commande à l'aide du CLI pour créer le projet info.

      $ oc delete project info
1.9.3.4.2. Retirer le projet Bookinfo de la liste des membres du Service Mesh

Procédure

  1. Connectez-vous à la console web de OpenShift Container Platform.
  2. Cliquez sur Operators Installed Operators.
  3. Cliquez sur le menu Project et choisissez istio-system dans la liste.
  4. Cliquez sur le lien Istio Service Mesh Member Roll sous Provided APIS pour l'opérateur Red Hat OpenShift Service Mesh.
  5. Cliquez sur le menu ServiceMeshMemberRoll kebab et sélectionnez Edit Service Mesh Member Roll.
  6. Modifiez le Service Mesh Member Roll YAML par défaut et supprimez info de la liste members.

    • Vous pouvez également exécuter cette commande à l'aide du CLI pour supprimer le projet info du projet ServiceMeshMemberRoll. Dans cet exemple, istio-system est le nom du projet de plan de contrôle Service Mesh.

      $ oc -n istio-system patch --type='json' smmr default -p '[{"op": "remove", "path": "/spec/members", "value":["'"info"'"]}]'
  7. Cliquez sur Save pour mettre à jour la liste des membres de Service Mesh.

1.9.4. Prochaines étapes

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.