2017-12-13 5 views
0

がMinikubeでの実行が期待通りに動作していない、私持っている必要がバックエンドでは、次の入力、:K8S nginxの進入書き換え対象の注釈は

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata: 
    name: my-ingress 
    annotations: 
    kubernetes.io/ingress.class: "nginx" 
    nginx.ingress.kubernetes.io/rewrite-target:/
spec: 
    rules: 
    - http: 
     paths: 
     - path: /config/ 
      backend: 
      serviceName: api-gateway 
      servicePort: web 

意図は、パスを期待ゲートウェイのWeb UIを提供することです/になります。それ以外の場合は、論理パスであるとみなされ、要求を正しいマイクロサービスに転送しようとします。

パスの書き換えが期待通りに機能していません。 /config//に置き換えません。私は誤解してthe exampleですか? nginxのコントローラのログに

私は、以下を参照してください/configの要求は/config/に書き換え、私は/configに書き換えるにはどうすればよい404

が生じてしまったことを私に言っています

192.168.99.1 - [192.168.99.1] - - [13/Dec/2017:08:54:11 +0000] "GET /config HTTP/1.1" 301 185 "-" "curl/7.55.1" 78 0.000 [-] - - - - 
192.168.99.1 - [192.168.99.1] - - [13/Dec/2017:08:54:11 +0000] "GET /config/ HTTP/1.1" 404 154 "-" "curl/7.55.1" 79 0.010 [dev-api-gateway-web] 172.17.0.10:8080 143 0.010 404 

/

答えて

1

例を誤解しています。書き換えターゲットへのコンフィギュレーション要求が/の場合は、別の方法ではなく、/config/に書き換えられます。したがって、パスを切り替える必要があります。/configを書き換えターゲットとして使用し、ルールに/パスを設定します。

したがって、書き換え対象は常に外部リクエストの場所です。サービス/ポッドへのリクエストが行くルールのパスです。

+0

私はそうかもしれませんが。 '/ config'を書き換えターゲットとして置いた場合、'/config'を含まないリクエストはどうなりますか?たとえば、 '/ api'に対するルールとバックエンドを持っていると仮定すると、'/api'のリクエストですか? –

+0

Ingressに書き換え対象が1つしかないため、別のIngressが必要です。しかし、同じホストに対して複数のIngressを持つことはできますが、それは問題ありません。 –

+0

書き換えパス(例: '/ config')が'/'に置き換えられた後、書き換えられたリクエストパスに従ってイングレスのルールが適用されるとは言いませんか? –