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.
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
- Connectez-vous à la console web de OpenShift Container Platform.
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.
-
Naviguez jusqu'à Home
Projects. - Saisissez un nom dans le champ Name.
- Cliquez sur Create.
-
Naviguez jusqu'à Home
-
Naviguez jusqu'à Operators
Installed Operators. -
Cliquez sur le menu Project et choisissez dans la liste le projet dans lequel votre ressource
ServiceMeshControlPlane
est déployée, par exempleistio-system
. - Cliquez sur l'opérateur Red Hat OpenShift Service Mesh.
- Cliquez sur l'onglet Istio Service Mesh Member Roll.
- Cliquez sur Create ServiceMeshMemberRoll
-
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
. - 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
Connectez-vous au CLI de OpenShift Container Platform.
$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
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>
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
Exécutez la commande suivante pour télécharger et créer la ressource
ServiceMeshMemberRoll
dans l'espace de nomsistio-system
.$ oc create -n istio-system -f servicemeshmemberroll-default.yaml
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
estConfigured
.
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 ressourceServiceMeshControlPlane
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
- Connectez-vous à la console web de OpenShift Container Platform.
-
Naviguez jusqu'à Operators
Installed Operators. -
Cliquez sur le menu Project et choisissez dans la liste le projet dans lequel votre ressource
ServiceMeshControlPlane
est déployée, par exempleistio-system
. - Cliquez sur l'opérateur Red Hat OpenShift Service Mesh.
- Cliquez sur l'onglet Istio Service Mesh Member Roll.
-
Cliquez sur le lien
default
. - Cliquez sur l'onglet YAML.
-
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
. - Cliquez sur Save.
- 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
- Connectez-vous au CLI de OpenShift Container Platform.
Modifier la ressource
ServiceMeshMemberRoll
.$ oc edit smmr -n <controlplane-namespace>
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 microservicesdetails
etreviews
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 microserviceratings
. -
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
.
L'application d'exemple Bookinfo ne peut pas être installée sur IBM zSystems et IBM Power.
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
-
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
. -
Cliquez sur Home
Projects. - Cliquez sur Create Project.
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
-
Cliquez sur Operators
Installed Operators. -
Cliquez sur le menu Project et utilisez l'espace de noms du plan de contrôle Service Mesh. Dans cet exemple, utilisez
istio-system
. - Cliquez sur l'opérateur Red Hat OpenShift Service Mesh.
Cliquez sur l'onglet Istio Service Mesh Member Roll.
- 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.
-
Si vous n'avez pas créé de site
ServiceMeshMemberRoll
, cliquez sur Create ServiceMeshMemberRoll.
- Cliquez sur Members, puis saisissez le nom de votre projet dans le champ Value.
Cliquez sur Create pour enregistrer la liste actualisée des membres du Service Mesh.
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
Exécutez la commande suivante pour télécharger ce fichier et créer la ressource
ServiceMeshMemberRoll
dans l'espace de nomsistio-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
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
estConfigured
.NAME READY STATUS AGE MEMBERS default 1/1 Configured 70s ["info"]
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
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
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
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
- Connectez-vous au CLI de OpenShift Container Platform.
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
Exécutez la commande suivante pour récupérer l'URL de la page produit :
echo "http://$GATEWAY_URL/productpage"
- 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
Obtenir l'adresse de la console web de Kiali.
-
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ôlededicated-admin
. -
Naviguez jusqu'à Networking
Routes. 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.
- Cliquez sur le lien dans la colonne Location pour Kiali.
- Cliquez sur Log In With OpenShift. L'écran Kiali Overview présente des tuiles pour chaque espace de noms de projets.
-
Connectez-vous à la console web de OpenShift Container Platform en tant qu'utilisateur avec les droits
- Dans Kiali, cliquez sur Graph.
- Sélectionnez info dans la liste Namespace et App graph dans la liste Graph Type.
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é.
- 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.
- 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
- Connectez-vous à la console web de OpenShift Container Platform.
-
Cliquez sur Home
Projects. -
Cliquez sur le menu
info
puis cliquez sur Delete Project. 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
- Connectez-vous à la console web de OpenShift Container Platform.
-
Cliquez sur Operators
Installed Operators. -
Cliquez sur le menu Project et choisissez
istio-system
dans la liste. - Cliquez sur le lien Istio Service Mesh Member Roll sous Provided APIS pour l'opérateur Red Hat OpenShift Service Mesh.
-
Cliquez sur le menu
ServiceMeshMemberRoll
et sélectionnez Edit Service Mesh Member Roll. 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 projetServiceMeshMemberRoll
. 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"'"]}]'
- Cliquez sur Save pour mettre à jour la liste des membres de Service Mesh.
1.9.4. Prochaines étapes
- Pour poursuivre le processus d'installation, vous devez activer l'injection de sidecar.