在Google Container引擎上運行集羣。GKE Ingress不尊重重寫規則
預計它遵守重寫規則。運行調試echo server它顯示它不尊重http-rewrite規則,如kubernetes ingress docs中記錄的那樣。
在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