enable dynamic backend configuration by default

This commit is contained in:
Elvin Efendi 2018-07-16 20:55:29 -04:00
parent d26357734e
commit 8a67ace5c3
6 changed files with 10 additions and 10 deletions

View file

@ -143,7 +143,7 @@ extension for this to succeed.`)
`Customized address to set as the load-balancer status of Ingress objects this controller satisfies. `Customized address to set as the load-balancer status of Ingress objects this controller satisfies.
Requires the update-status parameter.`) Requires the update-status parameter.`)
dynamicConfigurationEnabled = flags.Bool("enable-dynamic-configuration", false, dynamicConfigurationEnabled = flags.Bool("enable-dynamic-configuration", true,
`Dynamically refresh backends on topology changes instead of reloading NGINX. `Dynamically refresh backends on topology changes instead of reloading NGINX.
Feature backed by OpenResty Lua libraries.`) Feature backed by OpenResty Lua libraries.`)

View file

@ -15,7 +15,7 @@ They are set in the container spec of the `nginx-ingress-controller` Deployment
| --default-server-port int | Port to use for exposing the default server (catch-all). (default 8181) | | --default-server-port int | Port to use for exposing the default server (catch-all). (default 8181) |
| --default-ssl-certificate string | Secret containing a SSL certificate to be used by the default HTTPS server (catch-all). Takes the form "namespace/name". | | --default-ssl-certificate string | Secret containing a SSL certificate to be used by the default HTTPS server (catch-all). Takes the form "namespace/name". |
| --election-id string | Election id to use for Ingress status updates. (default "ingress-controller-leader") | | --election-id string | Election id to use for Ingress status updates. (default "ingress-controller-leader") |
| --enable-dynamic-configuration | Dynamically refresh backends on topology changes instead of reloading NGINX. Feature backed by OpenResty Lua libraries. | | --enable-dynamic-configuration | Dynamically refresh backends on topology changes instead of reloading NGINX. Feature backed by OpenResty Lua libraries. (enabled by default) |
| --enable-ssl-chain-completion | Autocomplete SSL certificate chains with missing intermediate CA certificates. A valid certificate chain is required to enable OCSP stapling. Certificates uploaded to Kubernetes must have the "Authority Information Access" X.509 v3 extension for this to succeed. (default true) | | --enable-ssl-chain-completion | Autocomplete SSL certificate chains with missing intermediate CA certificates. A valid certificate chain is required to enable OCSP stapling. Certificates uploaded to Kubernetes must have the "Authority Information Access" X.509 v3 extension for this to succeed. (default true) |
| --enable-ssl-passthrough | Enable SSL Passthrough. | | --enable-ssl-passthrough | Enable SSL Passthrough. |
| --force-namespace-isolation | Force namespace isolation. Prevents Ingress objects from referencing Secrets and ConfigMaps located in a different namespace than their own. May be used together with watch-namespace. | | --force-namespace-isolation | Force namespace isolation. Prevents Ingress objects from referencing Secrets and ConfigMaps located in a different namespace than their own. May be used together with watch-namespace. |

View file

@ -92,7 +92,7 @@ The following table shows a configuration option's name, type, and the default v
|[worker-processes](#worker-processes)|string|`<Number of CPUs>`| |[worker-processes](#worker-processes)|string|`<Number of CPUs>`|
|[worker-cpu-affinity](#worker-cpu-affinity)|string|""| |[worker-cpu-affinity](#worker-cpu-affinity)|string|""|
|[worker-shutdown-timeout](#worker-shutdown-timeout)|string|"10s"| |[worker-shutdown-timeout](#worker-shutdown-timeout)|string|"10s"|
|[load-balance](#load-balance)|string|"least_conn"| |[load-balance](#load-balance)|string|"round_robin"|
|[variables-hash-bucket-size](#variables-hash-bucket-size)|int|128| |[variables-hash-bucket-size](#variables-hash-bucket-size)|int|128|
|[variables-hash-max-size](#variables-hash-max-size)|int|2048| |[variables-hash-max-size](#variables-hash-max-size)|int|2048|
|[upstream-keepalive-connections](#upstream-keepalive-connections)|int|32| |[upstream-keepalive-connections](#upstream-keepalive-connections)|int|32|
@ -520,11 +520,11 @@ Sets the algorithm to use for load balancing.
The value can either be: The value can either be:
- round_robin: to use the default round robin loadbalancer - round_robin: to use the default round robin loadbalancer
- least_conn: to use the least connected method - least_conn: to use the least connected method (_note_ that this is available only in non-dynamic mode: `--enable-dynamic-configuration=false`)
- ip_hash: to use a hash of the server for routing. - ip_hash: to use a hash of the server for routing (_note_ that this is available only in non-dynamic mode: `--enable-dynamic-configuration=false`, but alternatively you can consider using `nginx.ingress.kubernetes.io/upstream-hash-by`)
- ewma: to use the peak ewma method for routing (only available with `enable-dynamic-configuration` flag) - ewma: to use the Peak EWMA method for routing ([implementation](https://github.com/kubernetes/ingress-nginx/blob/master/rootfs/etc/nginx/lua/balancer/ewma.lua))
The default is least_conn. The default is `round_robin`.
_References:_ _References:_
[http://nginx.org/en/docs/http/load_balancing.html](http://nginx.org/en/docs/http/load_balancing.html) [http://nginx.org/en/docs/http/load_balancing.html](http://nginx.org/en/docs/http/load_balancing.html)

View file

@ -77,7 +77,7 @@ const (
sslSessionCacheSize = "10m" sslSessionCacheSize = "10m"
// Default setting for load balancer algorithm // Default setting for load balancer algorithm
defaultLoadBalancerAlgorithm = "least_conn" defaultLoadBalancerAlgorithm = ""
// Parameters for a shared memory zone that will keep states for various keys. // Parameters for a shared memory zone that will keep states for various keys.
// http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn_zone // http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn_zone

View file

@ -155,7 +155,7 @@ func TestMergeConfigMapToStruct(t *testing.T) {
func TestDefaultLoadBalance(t *testing.T) { func TestDefaultLoadBalance(t *testing.T) {
conf := map[string]string{} conf := map[string]string{}
to := ReadConfig(conf) to := ReadConfig(conf)
if to.LoadBalanceAlgorithm != "least_conn" { if to.LoadBalanceAlgorithm != "" {
t.Errorf("default load balance algorithm wrong") t.Errorf("default load balance algorithm wrong")
} }
} }

View file

@ -378,7 +378,7 @@ func buildLoadBalancingConfig(b interface{}, fallbackLoadBalancing string) strin
return fmt.Sprintf("%s;", backend.LoadBalancing) return fmt.Sprintf("%s;", backend.LoadBalancing)
} }
if fallbackLoadBalancing == "round_robin" { if fallbackLoadBalancing == "round_robin" || fallbackLoadBalancing == "" {
return "" return ""
} }