document when to modify elb timeouts and set default to 60s
This commit is contained in:
parent
3f6314aa2f
commit
e866ab077d
3 changed files with 24 additions and 4 deletions
|
@ -9,8 +9,10 @@ metadata:
|
||||||
annotations:
|
annotations:
|
||||||
# Enable PROXY protocol
|
# Enable PROXY protocol
|
||||||
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: '*'
|
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: '*'
|
||||||
# Increase the ELB idle timeout to avoid issues with WebSockets or Server-Sent Events.
|
# Ensure the ELB idle timeout is less than nginx keep-alive timeout. By default,
|
||||||
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '3600'
|
# NGINX keep-alive is set to 75s. If using WebSockets, the value will need to be
|
||||||
|
# increased to '3600' to avoid any potential issues.
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '60'
|
||||||
spec:
|
spec:
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
selector:
|
selector:
|
||||||
|
|
|
@ -13,8 +13,10 @@ metadata:
|
||||||
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
|
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
|
||||||
# Map port 443
|
# Map port 443
|
||||||
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
|
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
|
||||||
# Increase the ELB idle timeout to avoid issues with WebSockets or Server-Sent Events.
|
# Ensure the ELB idle timeout is less than nginx keep-alive timeout. By default,
|
||||||
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '3600'
|
# NGINX keep-alive is set to 75s. If using WebSockets, the value will need to be
|
||||||
|
# increased to '3600' to avoid any potential issues.
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '60'
|
||||||
spec:
|
spec:
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
selector:
|
selector:
|
||||||
|
|
|
@ -82,6 +82,10 @@ This setup requires to choose in which layer (L4 or L7) we want to configure the
|
||||||
|
|
||||||
For L4:
|
For L4:
|
||||||
|
|
||||||
|
Check that no change is necessary with regards to the ELB idle timeout. In some scenarios, users may want to modify the ELB idle timeout, so please check the [ELB Idle Timeouts section](#elb-idle-timeouts) for additional information. If a change is required, users will need to update the value of `service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout` in `provider/aws/service-l4.yaml`
|
||||||
|
|
||||||
|
Then execute:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/aws/service-l4.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/aws/service-l4.yaml
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/aws/patch-configmap-l4.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/aws/patch-configmap-l4.yaml
|
||||||
|
@ -90,6 +94,9 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/mast
|
||||||
For L7:
|
For L7:
|
||||||
|
|
||||||
Change line of the file `provider/aws/service-l7.yaml` replacing the dummy id with a valid one `"arn:aws:acm:us-west-2:XXXXXXXX:certificate/XXXXXX-XXXXXXX-XXXXXXX-XXXXXXXX"`
|
Change line of the file `provider/aws/service-l7.yaml` replacing the dummy id with a valid one `"arn:aws:acm:us-west-2:XXXXXXXX:certificate/XXXXXX-XXXXXXX-XXXXXXX-XXXXXXXX"`
|
||||||
|
|
||||||
|
Check that no change is necessary with regards to the ELB idle timeout. In some scenarios, users may want to modify the ELB idle timeout, so please check the [ELB Idle Timeouts section](#elb-idle-timeouts) for additional information. If a change is required, users will need to update the value of `service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout` in `provider/aws/service-l7.yaml`
|
||||||
|
|
||||||
Then execute:
|
Then execute:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
|
@ -101,6 +108,15 @@ This example creates an ELB with just two listeners, one in port 80 and another
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
##### ELB Idle Timeouts
|
||||||
|
In some scenarios users will need to modify the value of the ELB idle timeout. Users need to ensure the idle timeout is less than the [keepalive_timeout](http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout) that is configured for NGINX. By default NGINX `keepalive_timeout` is set to `75s`.
|
||||||
|
|
||||||
|
The default ELB idle timeout will work for most scenarios, unless the NGINX [keepalive_timeout](http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout) has been modified, in which case `service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout` will need to be modified to ensure it is less than the `keepalive_timeout` the user has configured.
|
||||||
|
|
||||||
|
_Please Note: An idle timeout of `3600s` is recommended when using WebSockets._
|
||||||
|
|
||||||
|
More information with regards to idle timeouts for your Load Balancer can be found in the [official AWS documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html).
|
||||||
|
|
||||||
##### Network Load Balancer (NLB)
|
##### Network Load Balancer (NLB)
|
||||||
|
|
||||||
This type of load balancer is supported since v1.10.0 as an ALPHA feature.
|
This type of load balancer is supported since v1.10.0 as an ALPHA feature.
|
||||||
|
|
Loading…
Reference in a new issue