我们希望使用注解根据url参数将请求重定向到不同的后端服务(query)
示例:
https://example.com/foo?differentQueryString=0-〉服务a
https://example.com/foo/bar?queryString=0-服务b
- 注意:路径无关紧要,可以是/foo/bar、/foo或/bar/foo
我们跟进了这件事
Kubernetes NGINX Ingress controller - different route if query string exists
且这
Kubernetes ingress routes with url parameter
但是,我们不希望仅为此设置ConfigMap,也不希望复制对入口的请求,而是重写
这是我们尝试过的
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($args ~ queryString=0){
backend.service.name = service-b
}
spec:
ingressClassName: nginx
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-a
port:
number: 80
- path: /
pathType: Prefix
backend:
service:
name: service-b
port:
number: 80
我们期待得到回应,但我们得到了502从入口Nginx
1条答案
按热度按时间3htmauhk1#
我们设法找到了一个不错的解决方案,而无需重写和配置Map
工作很好,还包括Nginx入口指标,因此我们可以相应地进行HPA
$proxy_upstream_name约定为名称空间-服务名称-端口