In Konvoy, Traefik v1.7 is the ingress controller installed by default and is used to provide access to the operations portal.
Although D2iQ recommends using your own ingress controller to provide access to your applications, certain users prefer using the default ingress controller.
While doing so, some users have found themselves in the necessity of adjusting the traefik timeout when the proxy server does not receive a timely response from the upstream server.
To mitigate this issue, the operator could change the traefik definition in the cluster.yaml by adjusting the timeout for requests forwarded to the backend servers, specifically the parameters forwarding.dialTimeout:
- name: traefik enabled: true values: | timeouts: responding: readTimeout: "0s" writeTimeout: "0s" idleTimeout: "0s" forwarding: dialTimeout: "300s" responseHeaderTimeout: "0s"
To verify whether the timeouts were modified, the data section in the traefik-kubeaddons configmap with the following command:
kubectl get cm traefik-kubeaddons -n kubeaddons -o=jsonpath='{.data}'
Please note that in traefik v1.7 timeouts can only be defined globally. Specifying timeouts per backend is a feature introduced in version 2.
References:
[1] https://doc.traefik.io/traefik/v1.7/configuration/commons/#timeouts
[2] https://github.com/mesosphere/charts/blob/master/staging/traefik/values.yaml#L518
[3] https://github.com/traefik/traefik/issues/3027
[4] https://doc.traefik.io/traefik/routing/entrypoints/#transport