0

minikube で 2 つのサービスを実行していFooますBar。サービスにアクセスすると、サービスにデータを取得するFooように要求します。サービスには と の 2 つのバージョンがあります。すべてのリクエストを次の場所にルーティングするようにデフォルト設定をセットアップしました。BarBar"1.0""2.0"RouteRuleistio"1.0"

apiVersion: config.istio.io/v1alpha2
kind: RouteRule
metadata:
  name: bar-default
spec:
  destination:
    name: bar-server
  precedence: 1
  route:
  - labels:
      version: "1.0"

正常に動作し、すべてのリクエストが に転送されていることがわかります"1.0"RouteRuleここで、ヘッダーに基づいて別のヘッダーを追加したいので、Chromeブラウザーからのすべてのリクエストは次の場所に転送され"2.0"ます。

apiVersion: config.istio.io/v1alpha2
kind: RouteRule
metadata:
  name: bar-v2
spec:
  destination:
    name: bar-server
  precedence: 2
  match:
    request:
      headers:
        user-agent:
          regex: ".*Chrome.*"
  route:
  - labels:
      version: "2.0"

そして、それは機能しません。すべての要求は引き続き にルーティングされ"1.0"ます。RouteRuleが作成されていることがわかります。

> istioctl get routerules
NAME            KIND                    NAMESPACE
bar-default RouteRule.v1alpha2.config.istio.io  default
bar-v2      RouteRule.v1alpha2.config.istio.io  default

UserAgentブラウザの開発者ツールで、ヘッダーが存在することがわかります。に転送されない理由を確認するためにリクエストをデバッグするにはどうすればよい"2.0"ですか?

4

1 に答える 1