Google Containerエンジンでクラスタを実行しています。GKE Ingressが書き換えルールを遵守していません
書き換えルールを尊重することを期待してください。デバッグecho serverを実行すると、kubernetes ingress docsにここに記載されているように、http-rewriteルールを遵守していないことが示されます。
minikubeでローカルに動作します。 realpath
パラメータにはデバッグがアタッチされていますが、マッチ後に書き換えが行われます。 /foo/bar/
対/debug/foo/bar
が必要です。
URL +応答
http://homes.stanzheng.com/debug/foo/bar
CLIENT VALUES: client_address=10.12.2.1 command=GET real path=/debug/foo/bar query=nil request_version=1.1 request_uri=http://homes.stanzheng.com:8080/debug/foo/bar SERVER VALUES: server_version=nginx: 1.10.0 - lua: 10001 HEADERS RECEIVED: accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 accept-encoding=gzip, deflate accept-language=en-US,en;q=0.8 connection=Keep-Alive cookie=__cfduid=dfd6a6d8c2a6b361a3d72e3fc493295441494876880; _ga=GA1.2.5098880.1494876881 host=homes.stanzheng.com upgrade-insecure-requests=1 user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36 via=1.1 google x-cloud-trace-context=1586885dcac2d537189444861a8a462c/1232314719683944914 x-forwarded-for=204.154.44.39, 35.190.78.5 x-forwarded-proto=http BODY: -no body in request-
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: rewrite
annotations:
ingress.kubernetes.io/rewrite-target:/
spec:
rules:
- host: minikube.homes
http:
paths:
- path: /debug/*
backend:
serviceName: echoserver
servicePort: 8080
これはGCEイングレスコントローラではサポートされていません時間 https://github.com/kubernetes/ingress/issues/1120#issuecomment-322002168 – stanzheng