对于这个问题很好的+1。
您的设置似乎对我而言。在您的解释中,我发现您的服务需要 http://<>/pgw/v1/swagger-ui.html 作为背景。但是,在您的设置中,提交给服务的路径将是 http://<>/qa/pgw/v1/swagger-ui.html 如果你的路线是 /qa/ 。
http://<>/pgw/v1/swagger-ui.html
http://<>/qa/pgw/v1/swagger-ui.html
/qa/
要删除前缀,您需要做的是添加一个 rewrite 统治你的入口:
rewrite
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: pgw-nginx-ingress namespace: payment-gateway-7682352 annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/rewrite-target: /$1 spec: rules: - http: paths: - backend: serviceName: payment-gateway-dev servicePort: 5000 path: /dev/(.+) - backend: serviceName: payment-gateway-qa servicePort: 5000 path: /qa/(.+)
在此之后,您的服务应该收到正确的上下文。
参考: