トラフィック管理
ウェイポイントプロキシがインストールされたので、サービス間でトラフィックを分割する方法を学びます。
サービス間のトラフィックを分割する
Bookinfoアプリケーションには、reviews
サービスの3つのバージョンがあります。これらのバージョン間でトラフィックを分割して、新機能をテストしたり、A/Bテストを実行したりできます。
トラフィックルーティングを設定して、リクエストの90%をreviews
v1に、10%をreviews
v2に送信してみましょう
$ kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: reviews
spec:
parentRefs:
- group: ""
kind: Service
name: reviews
port: 9080
rules:
- backendRefs:
- name: reviews-v1
port: 9080
weight: 90
- name: reviews-v2
port: 9080
weight: 10
EOF
100件のリクエストからのトラフィックのおおよそ10%がreviews-v2
に送信されることを確認するには、次のコマンドを実行できます
$ kubectl exec deploy/curl -- sh -c "for i in \$(seq 1 100); do curl -s http://productpage:9080/productpage | grep reviews-v.-; done"
ほとんどのリクエストがreviews-v1
に送信されることに気付くでしょう。ブラウザでBookinfoアプリケーションを開き、ページを複数回更新した場合も同様の結果を確認できます。reviews-v1
からのリクエストには星が付いていませんが、reviews-v2
からのリクエストには黒い星が付いていることに注意してください。
次のステップ
このセクションで、アンビエントモードの入門ガイドは終了です。引き続き、クリーンアップセクションに進んでIstioを削除するか、アンビエントモードのユーザーガイドに進んでIstioの機能と能力についてさらに学ぶことができます。