サービスのパスリダイレクトを設定すると、サービスは特定のリクエストに対して HTTP 301 ステータスコードで応答し、リクエストをサービスの別のパスにリダイレクトします。このトピックでは、パスリダイレクトを設定する方法について説明します。
前提条件
準備が完了し、HTTPBin、sleep、および NGINX サービスがデプロイされています。詳細については、「準備」をご参照ください。
手順
HTTPBin サービスへのリクエストを NGINX サービスに転送するように、HTTPBin サービスの仮想サービスを設定します。
ASM コンソール にログインします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。表示されるページで、[作成] をクリックします。
[作成] ページで、次のパラメーターを設定し、[プレビュー] をクリックします。YAML コンテンツが正しいことを確認し、[送信] をクリックしてから、[作成] をクリックします。
YAML プレビューは次のとおりです。
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: httpbin namespace: default spec: hosts: - httpbin.default.svc.cluster.local http: - match: - uri: exact: / redirect: uri: /get
kubeconfig ファイルの情報に基づいて、kubectl を使用して Container Service for Kubernetes (ACK) クラスタに接続し、次のコマンドを実行してパスリダイレクト設定が有効になっているかどうかを確認します。
kubectl exec -it deploy/sleep -- curl httpbin:8000 -I
期待される出力:
HTTP/1.1 301 Moved Permanently location: http://httpbin:8000/get date: Mon, 14 Aug 2023 02:51:52 GMT server: envoy transfer-encoding: chunked
sleep コンテナ内の HTTPBin サービスのルートパスにリクエストが送信され、HTTP 301 ステータスコードで応答されていることがわかります。レスポンスでは、
location
フィールドがhttp://httpbin:8000/get
に設定されています。これは、リクエストが HTTPBin サービスの/get
パスにリダイレクトされることを示しています。