Skip to content
This repository was archived by the owner on Apr 17, 2019. It is now read-only.

[nginx-ingress-controller] Clarify the controller uses endpoints and not services #1766

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions ingress/controllers/nginx/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ This is an nginx Ingress controller that uses [ConfigMap](https://github.com/kub
* [Disabling NGINX ingress controller](#disabling-nginx-ingress-controller)
* [Local cluster](#local-cluster)
* [Debug & Troubleshooting](#troubleshooting)
* [Why endpoints and not services?](#why-endpoints-and-not-services)
* [Limitations](#limitations)
* [NGINX Notes](#nginx-notes)

Expand Down Expand Up @@ -402,12 +403,17 @@ I0316 12:24:37.610073 1 command.go:69] change in configuration detected. R
* To fix the above, setup-files.sh must be patched before the cluster is inited (refer to https://github.com/kubernetes/kubernetes/pull/21504)


## Limitations
### Limitations

- Ingress rules for TLS require the definition of the field `host`


## NGINX notes
### Why endpoints and not services

The NGINX ingress controller does not uses [Services](http://kubernetes.io/docs/user-guide/services) to route traffic to the pods. Instead it uses the Endpoints API in order to bypass [kube-proxy](http://kubernetes.io/docs/admin/kube-proxy/) to allow NGINX features like session affinity and custom load balancing algorithms. It also removes some overhead, such as conntrack entries for iptables DNAT.


### NGINX notes

Since `gcr.io/google_containers/nginx-slim:0.8` NGINX contains the next patches:
- Dynamic TLS record size [nginx__dynamic_tls_records.patch](https://blog.cloudflare.com/optimizing-tls-over-tcp-to-reduce-latency/)
Expand Down