TL;何らかの理由でDRすべてのHTTPサービスは、私がKubernetesにかなり新たなんだとイングレスロードバランサを設定しようとしているパスが/
Kubernetes入力ロードバランサはすべてをインデックスに書き換えます。どうして?
として書き直されているようです。
Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.6", GitCommit:"4bc5e7f9a6c25dc4c03d4d656f2cefd21540e28c", GitTreeState:"clean", BuildDate:"2017-09-14T06:55:55Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"7+", GitVersion:"v1.7.6-gke.1", GitCommit:"407dbfe965f3de06b332cc22d2eb1ca07fb4d3fb", GitTreeState:"clean", BuildDate:"2017-09-27T21:21:34Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
私は良いことですGoogleのコンテナエンジン(GKE)それは部分的に取り組んでいます
、中にすべてのものを設定しています。しかし何らかの理由で、リクエストが/
に向けられているかのように、すべてのサービスを私のサービスにルーティングしています。
ここには何が起こっていますか?私の推測は貧弱な構成です。問題はない - 私はapi.example.com/my_service/
への要求は、その後myServiceというのインデックスから来るよう依頼を登録します作るたび
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: main-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "ingress-main-ip"
spec:
tls:
- secretName: cert-main
hosts:
- api.example.com
rules:
- host: api.example.com
http:
paths:
- path: /my_service/*
backend:
serviceName: myService
servicePort: main-port
- path: /my_service2/*
backend:
serviceName: myService2
servicePort: main-port
。 myService2
に行く。しかし、私はhttps://api.example.com/my_service/bogus/path/that/should/return/404
に要求を行うたびその後、私のサービスは、要求が再び以前と同じように/
パスに向けられていると考えているようだhttps://api.example.com/my_service2/
と
同じこと。
もちろん、私はmyServiceをローカルで実行します(これはGo HTTPサーバーになります)。特に明確にすることが:127.0.0.1/bogus/path/that/should/return/404
ローカルこれを実行すると、期待通りに404を返します(もちろん、他のAPIエンドポイントでも動作する)
ここでは非常に奇妙なことだ:私は直接、静的IPアドレスを訪問するたびに(別名ingress-は、 main-ip、1.2.3.4と言うことがあります)。たとえば、http://1.2.3.4/my_service/
またはhttp://1.2.3.4/my_service2/
です。常には、GKEのデフォルトバックエンドから404を返します。サービスがルーティングされない場合もあります。
概要:
- なぜ要求のドメインのバージョンはすべて、なぜ直接IP要求は全く動作しません
/
- にルーティングされますか?
ありがとうございました!