在App G/w入口控制器中设置覆盖后端路径为空字符串



我们正在使用Azure应用程序G/w入口控制器来公开托管在AKS中的服务。如。名为abc的服务在AKS中托管,如下

apiVersion: v1
kind: Service
metadata:
labels:
project: abc
app: abc
env: dev
name:  abc
namespace: abc
spec:
ports:
- name: http
# This is the external port of the cluster
port: 8443
protocol: TCP
targetPort: http
selector:
project: abc
app:  abc
env: dev
type: ClusterIP

入口配置

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-abc
namespace: abc
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/backend-path-prefix: "/"
rules:
- http:
paths:
- backend:
serviceName: abc
servicePort: 9000
path: /abc*

问题陈述

前端将发送请求到后端,如:https://app-gw-ip/abc/operation.

App G/w应用合适的路由规则,将request_uri转换为"//operation"abc">";在URL路径被"/">覆盖因为后端路径前缀注释。而我们希望request_uri为">/operation">

是否有办法设置后端路径前缀为空字符串?

我要替换"abc/">在URL路径中使用"/"目前它取代了"abc">"/">.

如果我不使用后端路径前缀,那么后端uri路径将是"abc/operation"这将返回404,因为abc服务没有任何名为abc/operation的端点。

仅使用path作为path: /abc/*

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-abc
namespace: abc
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/backend-path-prefix: "/"
rules:
- http:
paths:
- backend:
serviceName: abc
servicePort: 9000
path: /abc/*

最新更新