1.10.3.3. ユーザーアイデンティティーに基づくルート
次に、ルート設定を変更して、特定のユーザーからのトラフィックすべてが特定のサービスバージョンにルーティングされるようにします。この場合、jason
という名前のユーザーからのトラフィックはすべて、サービス reviews:v2
にルーティングされます。
サービスメッシュには、ユーザーアイデンティティーについての特別な組み込み情報がないことに注意してください。この例は、productpage
サービスが reviews サービスへのすべてのアウトバウンド HTTP リクエストにカスタム end-user
ヘッダーを追加することで有効にされます。
以下のコマンドを実行してユーザーベースのルーティングを有効にします。
$ oc apply -f https://raw.githubusercontent.com/Maistra/istio/maistra-1.1/samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
ルールが作成されていることを確認します。
$ oc get virtualservice reviews -o yaml
このコマンドは以下の 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: v1
-
Bookinfo アプリケーションの
/productpage
で、ユーザーjason
としてログインします。ブラウザーを更新します。表示内容を確認してください。各レビューの横に星評価が表示されます。 -
別のユーザーとしてログインします (任意の名前を指定します)。ブラウザーを更新します。これで星がなくなりました。これは、Jason 以外のすべてのユーザーについてトラフィックが
reviews:v1
にルーティングされるためです。
ユーザーアイデンティティーに基づいてトラフィックをルーティングするようにサービスメッシュが正常に設定されています。