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) にルーティングするように設定しています。