Тайм-аут входа Kubernetes Nginx только для двух запросов
В нашей входной конфигурации k8s мы установили тайм-аут равным 10 минутам, и он применяется ко всем запросам. Можно ли настроить таймаут только для двух запросов типа/my-service/v1/processfile
и/my-service/v1/cachewarmup
.
На данный момент наша конфигурация следующая:
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-service
annotations:
nginx.ingress.kubernetes.io/proxy-connect-timeout: '600'
nginx.ingress.kubernetes.io/proxy-send-timeout: '600'
nginx.ingress.kubernetes.io/proxy-read-timeout: '600'
spec:
rules:
- host: my-service-dev1.eus1-devqa.geo.com
http:
paths:
- path: /
backend:
serviceName: my-service-svc
servicePort: 8080
Может ли кто-нибудь помочь мне настроить тайм-аут входа nginx только для двух запросов на 10 минут, а для всех остальных запросов по умолчанию — 1 минута.
1 ответ
Да, вы можете указать отдельныйIngress
ресурс, который содержит только эти два пути, поскольку Ingress соответствует наиболее конкретному шаблону:
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-service
annotations:
nginx.ingress.kubernetes.io/proxy-connect-timeout: '60'
nginx.ingress.kubernetes.io/proxy-send-timeout: '60'
nginx.ingress.kubernetes.io/proxy-read-timeout: '60'
spec:
rules:
- host: my-service-dev1.eus1-devqa.geo.com
http:
paths:
- path: /
backend:
serviceName: my-service-svc
servicePort: 8080
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-service-600
annotations:
nginx.ingress.kubernetes.io/proxy-connect-timeout: '600'
nginx.ingress.kubernetes.io/proxy-send-timeout: '600'
nginx.ingress.kubernetes.io/proxy-read-timeout: '600'
spec:
rules:
- host: my-service-dev1.eus1-devqa.geo.com
http:
paths:
- path: /my-service/v1/processfile
backend:
serviceName: my-service-svc
servicePort: 8080
- path: /my-service/v1/cachewarmup
backend:
serviceName: my-service-svc
servicePort: 8080