1.10.3. Bookinfo アプリケーションを使用したルーティングの例
Service Mesh Bookinfo サンプルアプリケーションは、それぞれが複数のバージョンを持つ 4 つの別個のマイクロサービスで設定されます。3 つの異なるバージョン (マイクロサービスの 1 つは reviews
と呼ばれる) はデプロイされており、同時に実行されます。
前提条件:
- 以下の例に合わせて Bookinfo サンプルアプリケーションをデプロイします。
このタスクについて
これによって生じる問題を確認するには、ブラウザーで bookinfo アプリの /product page
にアクセスし、複数回更新を実行します。
書評の出力に星評価が含まれる場合や、含まれない場合があります。ルーティング先の明示的なデフォルトサービスバージョンがない場合、サービスメッシュは、利用可能なすべてのバージョンに要求をルーティングしていきます。
このチュートリアルは、すべてのトラフィックをマイクロサービスの v1
(バージョン 1) にルーティングするルールを適用するのに役立ちます。後に、HTTP リクエストヘッダーの値に基づいてトラフィックをルーティングするためのルールを適用できます。
1.10.3.1. 仮想サービスの適用
1 つのバージョンにのみルーティングするには、マイクるサービスのデフォルトバージョンを設定する仮想サービスを適用します。以下の例では、仮想サービスはすべてのトラフィックを各マイクロサービスの v1
にルーティングします。
以下のコマンドを実行して仮想サービスを適用します。
$ oc apply -f https://raw.githubusercontent.com/Maistra/istio/maistra-1.1/samples/bookinfo/networking/virtual-service-all-v1.yaml
コマンドが正常に実行されることをテストするには、以下のコマンドで定義されたルートを表示します。
$ oc get virtualservices -o yaml
このコマンドは以下の YAML ファイルを返します。
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: details ... spec: hosts: - details http: - route: - destination: host: details subset: v1 --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: productpage ... spec: gateways: - bookinfo-gateway - mesh hosts: - productpage http: - route: - destination: host: productpage subset: v1 --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: ratings ... spec: hosts: - ratings http: - route: - destination: host: ratings subset: v1 --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews ... spec: hosts: - reviews http: - route: - destination: host: reviews subset: v1
サービスメッシュを Bookinfo マイクロサービスの
v1
バージョン (最も重要な点としてreviews
サービスバージョン 1) にルーティングするように設定しています。