Kubernetes Ingress 重写目标 - 无论如何要在重写时保留地址?

Kubernetes Ingress rewrite-target - anyway to preserve the address when rewrite?

我在 pod 中有一个 oauth2 服务 运行 需要用户将请求发送到

http://[address]/oauth/token?grant_type=client_credentials&scope=[scope]

我有如下 Ingress 规则,在我看来 Ingress 在重写时正在删除 'oauth' 个单词。

例如,当用户提交请求时使用下面的 Ingress 规则: http://address.com/oauth/token?grant_type=client_credentials&scope=[scope] 然后 auth-service 得到这样的请求: http://address.com/token?grant_type=client_credentials&scope=[scope]

有办法解决这个问题吗?

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gateway-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: address.com
    http:
        paths:
        - path: /oauth/*
          backend:
            serviceName: auth-service
            servicePort: 8052

我通过删除重写目标注释解决了这个问题。

我还必须在 /oauth

之后删除 /*

我希望这对其他人有帮助。