2.7. Gestion du trafic


Avertissement

You are viewing documentation for a Red Hat OpenShift Service Mesh release that is no longer supported.

Les plans de contrôle Service Mesh version 1.0 et 1.1 ne sont plus pris en charge. Pour plus d'informations sur la mise à niveau de votre plan de contrôle Service Mesh, voir Mise à niveau de Service Mesh.

Pour plus d'informations sur l'état de l'assistance d'une version particulière de Red Hat OpenShift Service Mesh, consultez la page Cycle de vie du produit.

Vous pouvez contrôler le flux de trafic et les appels API entre les services dans Red Hat OpenShift Service Mesh. Par exemple, certains services de votre maillage de services peuvent avoir besoin de communiquer au sein du maillage et d'autres peuvent avoir besoin d'être cachés. Gérez le trafic pour cacher des services backend spécifiques, exposer des services, créer des déploiements de test ou de version, ou ajouter une couche de sécurité sur un ensemble de services.

2.7.1. Utilisation de passerelles

Vous pouvez utiliser une passerelle pour gérer le trafic entrant et sortant de votre maillage afin de spécifier le trafic que vous souhaitez voir entrer ou sortir du maillage. Les configurations de passerelle sont appliquées aux proxys Envoy autonomes qui s'exécutent à la périphérie du maillage, plutôt qu'aux proxys Envoy sidecar qui s'exécutent aux côtés de vos charges de travail de service.

Contrairement à d'autres mécanismes de contrôle du trafic entrant dans vos systèmes, tels que les API Kubernetes Ingress, les passerelles Red Hat OpenShift Service Mesh utilisent toute la puissance et la flexibilité du routage du trafic.

La ressource de passerelle Red Hat OpenShift Service Mesh peut utiliser les propriétés d'équilibrage de charge de la couche 4-6, telles que les ports, pour exposer et configurer les paramètres TLS de Red Hat OpenShift Service Mesh. Au lieu d'ajouter le routage du trafic de la couche application (L7) à la même ressource API, vous pouvez lier un service virtuel Red Hat OpenShift Service Mesh ordinaire à la passerelle et gérer le trafic de la passerelle comme tout autre trafic de plan de données dans un maillage de services.

Les passerelles sont principalement utilisées pour gérer le trafic entrant, mais vous pouvez également configurer des passerelles de sortie. Une passerelle de sortie vous permet de configurer un nœud de sortie dédié pour le trafic quittant le maillage. Cela vous permet de limiter les services qui ont accès aux réseaux externes, ce qui ajoute un contrôle de sécurité à votre maillage de services. Vous pouvez également utiliser une passerelle pour configurer un proxy purement interne.

Exemple de passerelle

Une ressource de passerelle décrit un équilibreur de charge fonctionnant à la périphérie du maillage et recevant des connexions HTTP/TCP entrantes ou sortantes. La spécification décrit un ensemble de ports qui doivent être exposés, le type de protocole à utiliser, la configuration SNI pour l'équilibreur de charge, etc.

L'exemple suivant montre un exemple de configuration de passerelle pour le trafic HTTPS externe entrant :

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: ext-host-gwy
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    hosts:
    - ext-host.example.com
    tls:
      mode: SIMPLE
      serverCertificate: /tmp/tls.crt
      privateKey: /tmp/tls.key

Cette configuration de passerelle permet au trafic HTTPS provenant de ext-host.example.com d'entrer dans le maillage sur le port 443, mais ne spécifie aucun routage pour le trafic.

Pour spécifier le routage et pour que la passerelle fonctionne comme prévu, vous devez également lier la passerelle à un service virtuel. Pour ce faire, vous utilisez le champ Passerelles du service virtuel, comme le montre l'exemple suivant :

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: virtual-svc
spec:
  hosts:
  - ext-host.example.com
  gateways:
    - ext-host-gwy

Vous pouvez ensuite configurer le service virtuel avec des règles de routage pour le trafic externe.

2.7.2. Configuration d'une passerelle d'entrée

Une passerelle d'entrée est un équilibreur de charge fonctionnant à la périphérie du réseau maillé et recevant des connexions HTTP/TCP entrantes. Elle configure les ports et les protocoles exposés, mais n'inclut aucune configuration d'acheminement du trafic. Le routage du trafic entrant est plutôt configuré avec des règles de routage, de la même manière que pour les demandes de services internes.

Les étapes suivantes montrent comment créer une passerelle et configurer un site VirtualService pour exposer un service de l'application d'exemple Bookinfo au trafic extérieur pour les chemins /productpage et /login.

Procédure

  1. Créer une passerelle pour accepter le trafic.

    1. Créez un fichier YAML et copiez-y le YAML suivant.

      Exemple de passerelle gateway.yaml

      apiVersion: networking.istio.io/v1alpha3
      kind: Gateway
      metadata:
        name: info-gateway
      spec:
        selector:
          istio: ingressgateway
        servers:
        - port:
            number: 80
            name: http
            protocol: HTTP
          hosts:
          - "*"

    2. Appliquer le fichier YAML.

      $ oc apply -f gateway.yaml
  2. Créer un objet VirtualService pour réécrire l'en-tête de l'hôte.

    1. Créez un fichier YAML et copiez-y le YAML suivant.

      Exemple de service virtuel

      apiVersion: networking.istio.io/v1alpha3
      kind: VirtualService
      metadata:
        name: info
      spec:
        hosts:
        - "*"
        gateways:
        - info-gateway
        http:
        - match:
          - uri:
              exact: /productpage
          - uri:
              prefix: /static
          - uri:
              exact: /login
          - uri:
              exact: /logout
          - uri:
              prefix: /api/v1/products
          route:
          - destination:
              host: productpage
              port:
                number: 9080

    2. Appliquer le fichier YAML.

      $ oc apply -f vs.yaml
  3. Vérifiez que la passerelle et le service virtuel ont été définis correctement.

    1. Définir l'URL de la passerelle.

      export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')
    2. Définissez le numéro de port. Dans cet exemple, istio-system est le nom du projet de plan de contrôle Service Mesh.

      export TARGET_PORT=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.port.targetPort}')
    3. Tester une page qui a été explicitement exposée.

      curl -s -I "$GATEWAY_URL/productpage"

      Le résultat attendu est 200.

2.7.3. Gestion du trafic entrant

Dans Red Hat OpenShift Service Mesh, la passerelle d'entrée permet aux fonctionnalités telles que la surveillance, la sécurité et les règles de routage de s'appliquer au trafic qui entre dans le cluster. Utilisez une passerelle Service Mesh pour exposer un service en dehors du service mesh.

2.7.3.1. Détermination de l'IP et des ports d'entrée

La configuration de l'entrée diffère selon que votre environnement supporte ou non un équilibreur de charge externe. Un équilibreur de charge externe est défini dans l'IP et les ports d'entrée du cluster. Pour déterminer si l'IP et les ports de votre cluster sont configurés pour les équilibreurs de charge externes, exécutez la commande suivante. Dans cet exemple, istio-system est le nom du projet de plan de contrôle Service Mesh.

$ oc get svc istio-ingressgateway -n istio-system

Cette commande renvoie les adresses NAME, TYPE, CLUSTER-IP, EXTERNAL-IP, PORT(S), et AGE de chaque élément de votre espace de noms.

Si la valeur EXTERNAL-IP est définie, votre environnement dispose d'un équilibreur de charge externe que vous pouvez utiliser comme passerelle d'entrée.

Si la valeur EXTERNAL-IP est <none>, ou perpétuellement <pending>, votre environnement ne fournit pas d'équilibreur de charge externe pour la passerelle d'entrée. Vous pouvez accéder à la passerelle en utilisant le port de nœud du service.

2.7.3.1.1. Détermination des ports d'entrée avec un équilibreur de charge

Suivez ces instructions si votre environnement dispose d'un équilibreur de charge externe.

Procédure

  1. Exécutez la commande suivante pour définir l'adresse IP et les ports d'entrée. Cette commande définit une variable dans votre terminal.

    $ export INGRESS_HOST=$(oc -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  2. Exécutez la commande suivante pour définir le port d'entrée.

    $ export INGRESS_PORT=$(oc -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
  3. Exécutez la commande suivante pour définir le port d'entrée sécurisé.

    $ export SECURE_INGRESS_PORT=$(oc -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')
  4. Exécutez la commande suivante pour définir le port d'entrée TCP.

    $ export TCP_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="tcp")].port}')
Note

Dans certains environnements, l'équilibreur de charge peut être exposé en utilisant un nom d'hôte au lieu d'une adresse IP. Dans ce cas, la valeur EXTERNAL-IP de la passerelle d'entrée n'est pas une adresse IP, mais un nom d'hôte. Il s'agit plutôt d'un nom d'hôte, et la commande précédente ne parvient pas à définir la variable d'environnement INGRESS_HOST.

Dans ce cas, utilisez la commande suivante pour corriger la valeur de INGRESS_HOST:

$ export INGRESS_HOST=$(oc -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
2.7.3.1.2. Détermination des ports d'entrée sans répartiteur de charge

Si votre environnement ne dispose pas d'un équilibreur de charge externe, déterminez les ports d'entrée et utilisez un port de nœud à la place.

Procédure

  1. Définir les ports d'entrée.

    $ export INGRESS_PORT=$(oc -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
  2. Exécutez la commande suivante pour définir le port d'entrée sécurisé.

    $ export SECURE_INGRESS_PORT=$(oc -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
  3. Exécutez la commande suivante pour définir le port d'entrée TCP.

    $ export TCP_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="tcp")].nodePort}')

2.7.4. Création automatique d'itinéraires

Les routes OpenShift pour les passerelles Istio sont automatiquement gérées dans Red Hat OpenShift Service Mesh. Chaque fois qu'une passerelle Istio est créée, mise à jour ou supprimée dans le service mesh, une route OpenShift est créée, mise à jour ou supprimée.

2.7.4.1. Activation de la création automatique d'itinéraires

Un composant du plan de contrôle de Red Hat OpenShift Service Mesh appelé Istio OpenShift Routing (IOR) synchronise la route de la passerelle. Activez IOR dans le cadre du déploiement du plan de contrôle.

Si la passerelle contient une section TLS, la route OpenShift sera configurée pour prendre en charge TLS.

  1. Dans la ressource ServiceMeshControlPlane, ajoutez le paramètre ior_enabled et définissez-le à true. Par exemple, voir l'extrait de ressource suivant :
spec:
  istio:
    gateways:
     istio-egressgateway:
       autoscaleEnabled: false
       autoscaleMin: 1
       autoscaleMax: 5
     istio-ingressgateway:
       autoscaleEnabled: false
       autoscaleMin: 1
       autoscaleMax: 5
       ior_enabled: true

2.7.4.2. Sous-domaines

Red Hat OpenShift Service Mesh crée la route avec le sous-domaine, mais OpenShift Container Platform doit être configuré pour l'activer. Les sous-domaines, par exemple *.domain.com, sont pris en charge mais pas par défaut. Configurez une politique de wildcard OpenShift Container Platform avant de configurer un wildcard host Gateway. Pour plus d'informations, voir la section "Liens".

Si la passerelle suivante est créée :

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: gateway1
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - www.info.com
    - info.example.com

Ensuite, les routes OpenShift suivantes sont créées automatiquement. Vous pouvez vérifier que les routes sont créées avec la commande suivante.

oc -n <control_plane_namespace> get routes

Résultats attendus

NAME           HOST/PORT             PATH  SERVICES               PORT  TERMINATION   WILDCARD
gateway1-lvlfn info.example.com        istio-ingressgateway   <all>               None
gateway1-scqhv www.info.com            istio-ingressgateway   <all>               None

Si la passerelle est supprimée, Red Hat OpenShift Service Mesh supprime les routes. Cependant, les routes créées manuellement ne sont jamais modifiées par Red Hat OpenShift Service Mesh.

2.7.5. Comprendre les entrées de service

Une entrée de service ajoute une entrée au registre de service que Red Hat OpenShift Service Mesh maintient en interne. Après avoir ajouté l'entrée de service, les proxys Envoy envoient du trafic au service comme s'il s'agissait d'un service dans votre maillage. Les entrées de service vous permettent d'effectuer les opérations suivantes :

  • Gérer le trafic pour les services qui s'exécutent en dehors du maillage de services.
  • Redirection et transfert du trafic vers des destinations externes (telles que les API consommées sur le web) ou vers des services de l'infrastructure existante.
  • Définir des politiques de relance, de temporisation et d'injection d'erreur pour les destinations externes.
  • Exécutez un service de maillage dans une machine virtuelle (VM) en ajoutant des VM à votre maillage.
Note

Ajoutez des services d'un cluster différent au maillage pour configurer un maillage multicluster Red Hat OpenShift Service Mesh sur Kubernetes.

Exemples de saisie de services

L'exemple suivant est une entrée de service mesh-external qui ajoute la dépendance externe ext-resource au registre de services Red Hat OpenShift Service Mesh :

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: svc-entry
spec:
  hosts:
  - ext-svc.example.com
  ports:
  - number: 443
    name: https
    protocol: HTTPS
  location: MESH_EXTERNAL
  resolution: DNS

Spécifiez la ressource externe à l'aide du champ hosts. Vous pouvez le qualifier complètement ou utiliser un nom de domaine préfixé par un joker.

Vous pouvez configurer des services virtuels et des règles de destination pour contrôler le trafic vers une entrée de service de la même manière que vous configurez le trafic pour tout autre service dans le maillage. Par exemple, la règle de destination suivante configure la route du trafic pour utiliser TLS mutuel afin de sécuriser la connexion au service externe ext-svc.example.com qui est configuré à l'aide de l'entrée de service :

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: ext-res-dr
spec:
  host: ext-svc.example.com
  trafficPolicy:
    tls:
      mode: MUTUAL
      clientCertificate: /etc/certs/myclientcert.pem
      privateKey: /etc/certs/client_private_key.pem
      caCertificates: /etc/certs/rootcacerts.pem

2.7.6. Utilisation des services virtuels

Vous pouvez acheminer des requêtes dynamiquement vers plusieurs versions d'un microservice via Red Hat OpenShift Service Mesh avec un service virtuel. Avec les services virtuels, vous pouvez :

  • Adresser plusieurs services d'application par le biais d'un seul service virtuel. Si votre maillage utilise Kubernetes, par exemple, vous pouvez configurer un service virtuel pour gérer tous les services dans un espace de noms spécifique. Un service virtuel vous permet de transformer une application monolithique en un service composé de microservices distincts avec une expérience consommateur transparente.
  • Configurer des règles de trafic en combinaison avec des passerelles pour contrôler le trafic entrant et sortant.

2.7.6.1. Configuration des services virtuels

Les demandes sont acheminées vers les services au sein d'un maillage de services virtuels. Chaque service virtuel consiste en un ensemble de règles de routage qui sont évaluées dans l'ordre. Red Hat OpenShift Service Mesh fait correspondre chaque demande donnée au service virtuel à une destination réelle spécifique au sein du maillage.

Sans services virtuels, Red Hat OpenShift Service Mesh distribue le trafic en utilisant l'équilibrage de charge des moindres demandes entre toutes les instances de service. Avec un service virtuel, vous pouvez spécifier le comportement du trafic pour un ou plusieurs noms d'hôte. Les règles de routage dans le service virtuel indiquent à Red Hat OpenShift Service Mesh comment envoyer le trafic pour le service virtuel vers les destinations appropriées. Les destinations de routage peuvent être des versions du même service ou des services entièrement différents.

Procédure

  1. Créez un fichier YAML à l'aide de l'exemple suivant pour acheminer les requêtes vers différentes versions de l'exemple de service d'application Bookinfo en fonction de l'utilisateur qui se connecte à l'application.

    Exemple VirtualService.yaml

    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: reviews
    spec:
      hosts:
      - reviews
      http:
      - match:
        - headers:
            end-user:
              exact: jason
        route:
        - destination:
            host: reviews
            subset: v2
      - route:
        - destination:
            host: reviews
            subset: v3

  2. Exécutez la commande suivante pour appliquer VirtualService.yaml, où VirtualService.yaml est le chemin d'accès au fichier.

    $ oc apply -f <VirtualService.yaml>

2.7.6.2. Référence de configuration du service virtuel

ParamètresDescription
spec:
  hosts:

Le champ hosts répertorie l'adresse de destination du service virtuel à laquelle les règles de routage s'appliquent. Il s'agit de l'adresse ou des adresses utilisées pour envoyer des requêtes au service. Le nom d'hôte du service virtuel peut être une adresse IP, un nom DNS ou un nom court qui se résout en un nom de domaine pleinement qualifié.

spec:
  http:
  - match:

La section http contient les règles de routage du service virtuel qui décrivent les conditions de correspondance et les actions pour le routage du trafic HTTP/1.1, HTTP2 et gRPC envoyé à la destination spécifiée dans le champ hosts. Une règle de routage se compose de la destination où vous voulez que le trafic aille et de toutes les conditions de correspondance spécifiées. La première règle de routage de l'exemple comporte une condition qui commence par le champ "match". Dans cet exemple, ce routage s'applique à toutes les demandes de l'utilisateur jason. Ajoutez les champs headers, end-user et exact pour sélectionner les demandes appropriées.

spec:
  http:
  - match:
    - destination:

Le champ destination dans la section route spécifie la destination réelle pour le trafic qui correspond à cette condition. Contrairement à l'hôte du service virtuel, l'hôte de la destination doit être une destination réelle qui existe dans le registre de service Red Hat OpenShift Service Mesh. Il peut s'agir d'un service mesh avec des proxies ou d'un service non mesh ajouté à l'aide d'une entrée de service. Dans cet exemple, le nom d'hôte est un nom de service Kubernetes :

2.7.7. Comprendre les règles de destination

Les règles de destination sont appliquées après l'évaluation des règles de routage des services virtuels, de sorte qu'elles s'appliquent à la destination réelle du trafic. Les services virtuels acheminent le trafic vers une destination. Les règles de destination configurent ce qu'il advient du trafic à cette destination.

Par défaut, Red Hat OpenShift Service Mesh utilise une politique d'équilibrage de charge des moindres demandes, où l'instance de service dans le pool avec le plus petit nombre de connexions actives reçoit la demande. Red Hat OpenShift Service Mesh prend également en charge les modèles suivants, que vous pouvez spécifier dans les règles de destination pour les requêtes vers un service ou un sous-ensemble de services particulier.

  • Aléatoire : Les demandes sont transmises de manière aléatoire aux instances du pool.
  • Pondéré : Les demandes sont transmises aux instances du pool en fonction d'un pourcentage spécifique.
  • Moins de demandes : Les demandes sont transmises aux instances ayant le moins de demandes.

Exemple de règle de destination

L'exemple de règle de destination suivant configure trois sous-ensembles différents pour le service de destination my-svc, avec des politiques d'équilibrage de charge différentes :

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: my-destination-rule
spec:
  host: my-svc
  trafficPolicy:
    loadBalancer:
      simple: RANDOM
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2
    trafficPolicy:
      loadBalancer:
        simple: ROUND_ROBIN
  - name: v3
    labels:
      version: v3

Ce guide fait référence à l'application Bookinfo pour fournir des exemples de routage dans une application d'exemple. Installez l'application Bookinfo pour découvrir comment fonctionnent ces exemples de routage.

2.7.8. Tutoriel de routage de Bookinfo

L'exemple d'application Service Mesh Bookinfo se compose de quatre microservices distincts, chacun ayant plusieurs versions. Après l'installation de l'exemple d'application Bookinfo, trois versions différentes du microservice reviews s'exécutent simultanément.

Lorsque vous accédez à la page de l'application Bookinfo /product dans un navigateur et que vous la rafraîchissez plusieurs fois, il arrive que la critique de livre contienne des étoiles et d'autres fois non. Sans version de service explicite par défaut, Service Mesh achemine les requêtes vers toutes les versions disponibles, l'une après l'autre.

Ce tutoriel vous aide à appliquer des règles qui acheminent tout le trafic vers v1 (version 1) des microservices. Par la suite, vous pourrez appliquer une règle pour acheminer le trafic en fonction de la valeur d'un en-tête de requête HTTP.

Prérequis :

  • Déployez l'application d'exemple Bookinfo pour travailler avec les exemples suivants.

2.7.8.1. Application d'un service virtuel

Dans la procédure suivante, le service virtuel achemine tout le trafic vers v1 de chaque microservice en appliquant des services virtuels qui définissent la version par défaut des microservices.

Procédure

  1. Appliquer les services virtuels.

    $ oc apply -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.3/samples/info/networking/virtual-service-all-v1.yaml
  2. Pour vérifier que vous avez appliqué les services virtuels, affichez les itinéraires définis à l'aide de la commande suivante :

    $ oc get virtualservices -o yaml

    Cette commande renvoie une ressource de kind: VirtualService au format YAML.

Vous avez configuré Service Mesh pour router vers la version v1 des microservices Bookinfo, y compris le service reviews version 1.

2.7.8.2. Test de la nouvelle configuration de l'itinéraire

Testez la nouvelle configuration en actualisant le site /productpage de l'application Bookinfo.

Procédure

  1. Définissez la valeur du paramètre GATEWAY_URL. Vous pouvez utiliser cette variable pour trouver l'URL de votre page produit Bookinfo ultérieurement. Dans cet exemple, istio-system est le nom du projet de plan de contrôle.

    export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')
  2. Exécutez la commande suivante pour récupérer l'URL de la page produit.

    echo "http://$GATEWAY_URL/productpage"
  3. Ouvrez le site Bookinfo dans votre navigateur.

La partie de la page consacrée aux avis s'affiche sans étoiles, quel que soit le nombre d'actualisations. Cela est dû au fait que vous avez configuré Service Mesh pour acheminer tout le trafic du service de commentaires vers la version reviews:v1 et que cette version du service n'accède pas au service de classement par étoiles.

Votre maillage de services achemine désormais le trafic vers une version d'un service.

2.7.8.3. Itinéraire basé sur l'identité de l'utilisateur

Modifiez la configuration de l'itinéraire de manière à ce que tout le trafic provenant d'un utilisateur spécifique soit acheminé vers une version de service spécifique. Dans ce cas, tout le trafic provenant d'un utilisateur nommé jason sera acheminé vers le service reviews:v2.

Service Mesh n'a pas de compréhension spéciale et intégrée de l'identité de l'utilisateur. Cet exemple est rendu possible par le fait que le service productpage ajoute un en-tête personnalisé end-user à toutes les demandes HTTP sortantes adressées au service de révision.

Procédure

  1. Exécutez la commande suivante pour activer le routage basé sur l'utilisateur dans l'application d'exemple Bookinfo.

    $ oc apply -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.3/samples/info/networking/virtual-service-reviews-test-v2.yaml
  2. Exécutez la commande suivante pour confirmer la création de la règle. Cette commande renvoie toutes les ressources de kind: VirtualService au format YAML.

    $ oc get virtualservice reviews -o yaml
  3. Sur le site /productpage de l'application Bookinfo, connectez-vous en tant qu'utilisateur jason sans mot de passe.
  4. Actualiser le navigateur. Les étoiles apparaissent à côté de chaque avis.
  5. Connectez-vous en tant qu'autre utilisateur (choisissez le nom que vous voulez). Actualisez le navigateur. Les étoiles ont disparu. Le trafic est maintenant acheminé vers reviews:v1 pour tous les utilisateurs sauf Jason.

Vous avez configuré avec succès l'application d'exemple Bookinfo pour acheminer le trafic en fonction de l'identité de l'utilisateur.

2.7.9. Ressources supplémentaires

Pour plus d'informations sur la configuration d'une politique de wildcard OpenShift Container Platform, voir Utiliser des routes wildcard.

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.