I have a service that can take more than 60 seconds to complete. When it passes over 60 seconds the client gets a 502 (while the server correctly completes the job).
In this message I discovered the terminationDelay
parameter that seems to be used in the following way:
spec:
entryPoints:
- web
routes:
- match: Host(`your.domain.com`) && PathPrefix(`/`)
kind: Rule
services:
- name: testservice
port: 80
## does not seem to be accepted
terminationDelay: 60000
In reality kubernetes doesn't accept it (kubectl explain ingressroute.spec.routes.services
do not show it) and docs only have the example for file-provider.
How can I set the terminationDelay for ingressRoute?
TIA
sandro
I Have also looked at the respondingTimeout
settings of the transport in the endpoint. I don't really understand when I should use them and anyhow it seems they're already set with reasonable defaults.
I have clear evidence that the timeout is set to 60 seconds, that is a value I cannot find where is set.
I have also tried fiddling with ServersTransport parameters in services as follows:
...
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: Host(`mydomain`) && PathPrefix(`/api`, `/static/`, `/admin`)
middlewares:
- name: do-buffering
services:
- name: wa-django
port: 80
serversTransport: slow-response
---
apiVersion: traefik.containo.us/v1alpha1
kind: ServersTransport
metadata:
name: slow-response
namespace: wa
spec:
forwardingTimeouts:
dialTimeout: "200s"
---
dialTimeout
doesn't seem to be taken into consideration, I'm probably misinterpreting its meaning. Even if I lower to 10 seconds, it doesn't interrupt the client call.
I don't have other ideas... any hints?
sandro