サービスのパスリダイレクトを設定すると、サービスは特定のリクエストに対して HTTP 301 ステータスコードで応答し、リクエストをサービスの別のパスにリダイレクトします。このトピックでは、パスリダイレクトを設定する方法について説明します。
前提条件
準備が完了し、HTTPBin サービスと sleep サービスがデプロイされています。詳細については、「準備」をご参照ください。
手順
istioctl ツールを使用して、次のコマンドを実行し、HTTPBin サービスのウェイポイントプロキシをデプロイします。
istioctl x waypoint apply --service-account httpbin予想される出力:
waypoint default/httpbin appliedHTTPBin サービスのルートパス宛てのリクエストを
/getパスに転送するように、HTTPBin サービスの仮想サービスを設定します。[ASM コンソール] にログインします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。表示されるページで、[作成] をクリックします。
[作成] ページで、次のパラメーターを設定し、[プレビュー] をクリックします。YAML コンテンツが正しいことを確認し、[送信] をクリックしてから、[作成] をクリックします。

次のコマンドを実行して、パスリダイレクトの設定が有効になっているかどうかを確認します。
kubectl exec -it deploy/sleep -- curl httpbin:8000 -I予想される出力:
HTTP/1.1 301 Moved Permanently location: http://httpbin:8000/get date: xxx, xx Aug 2023 11:xx:xx GMT server: istio-envoy transfer-encoding: chunkedsleep コンテナ内の HTTPBin サービスのルートパスにリクエストが送信され、HTTP 301 ステータスコードで応答されていることがわかります。レスポンスでは、
locationフィールドがhttp://httpbin:8000/getに設定されています。これは、リクエストが HTTPBin サービスの/getパスにリダイレクトされることを示しています。