Setting the request timeout by adding an annotation to my ingress.yaml will make the gatway report 502 - Bad Gateway.
To reproduce:
apply a yaml file such as this:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myingress
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/backend-path-prefix: "/"
appgw.ingress.kubernetes.io/request-timeout: 40
spec:
tls:
- hosts:
- somename.mydomain
secretName: my-tls-secret-name
rules:
- host: somename.mydomain
http:
paths:
- path: /myservice/*
backend:
serviceName: myservice
servicePort: 80
Application gateway ingress controller Version:
mcr.microsoft.com/azure-application-gateway/kubernetes-ingress:0.7.1
@onybo Thanks for reporting the issue.
I see that you are using an older version of the ingress controller. Would mind updating it to 0.10.0. Here are instructions.
Can you check your AppGw's backend health on portal and see if Pods are marked healthy ?
The "instructions" assumes Helm and Tiller. Installing Tiller in the cluster is not an option for me. Are there any documentation on what needs to be changed between 0.7.1 and 0.10.0?
The backend health tab reports status "Healthy" for all my backend pools/Pods.
The details column behaves a bit strange though.
Sometimes it reads: "Success. Received 200 status code"
and sometimes it reads:
"The backend health status could not be retrieved. This happens when an NSG/UDR/Firewall on the application gateway subnet is blocking traffic on ports 65503-65534 in case of v1 SKU, and ports 65200-65535 in case of the v2 SKU. To learn more visit - https://aka.ms/UnknownBackendHealth"
But the status is "Healthy" regardless of the message in the "Details" column
@onybo Were you able to get past this issue ?
No, we gave up and decided to use nginx instead of application gateway.
I ran into this same issue. I'm working on it now and will report my findings here.
Did you find any solution for this?
Most helpful comment
No, we gave up and decided to use nginx instead of application gateway.