You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/en/docs/concepts/services-networking/ingress-controllers.md
+32-7Lines changed: 32 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,27 +3,52 @@ title: Ingress Controllers
3
3
description: >-
4
4
In order for an [Ingress](/docs/concepts/services-networking/ingress/) to work in your cluster,
5
5
there must be an _ingress controller_ running.
6
-
You need to select at least one ingress controller and make sure it is set up in your cluster.
6
+
You need to select at least one ingress controller and make sure it is set up in your cluster.
7
7
This page lists common ingress controllers that you can deploy.
8
8
content_type: concept
9
9
weight: 50
10
10
---
11
11
12
-
<!-- overview -->
12
+
{{< warning >}}
13
+
The Ingress API has been frozen.
14
+
{{< /warning >}}
15
+
16
+
<!-- body -->
13
17
14
-
In order for the Ingress resource to work, the cluster must have an ingress controller running.
18
+
<!-- overview -->
15
19
16
-
Unlike other types of controllers which run as part of the `kube-controller-manager` binary, Ingress controllers
17
-
are not started automatically with a cluster. Use this page to choose the ingress controller implementation
18
-
that best fits your cluster.
20
+
## Consider using Gateway API
21
+
[Gateway API](/docs/concepts/services-networking/gateway/) is GA and includes
22
+
many more features (and controllers). The following table highlights some of the
23
+
differences between the APIs:
24
+
25
+
|| Ingress | Gateway API |
26
+
| - | - | - |
27
+
| GA | ✅ Yes | ✅ Yes |
28
+
| Basic HTTP path matching | ✅ Yes | ✅ Yes |
29
+
| Traffic Splitting | ❌ No | ✅ Yes |
30
+
| More Protocols (gRPC, TLS) | ❌ No | ✅ Yes |
31
+
| More Matchers (Headers, Query Params, Methods) | ❌ No | ✅ Yes |
32
+
| Redirects | ❌ No | ✅ Yes |
33
+
| Rewrites | ❌ No | ✅ Yes |
34
+
| TLS Validation | ❌ No | ✅ Yes |
35
+
| Cross-Namespace References | ❌ No | ✅ Yes |
36
+
| AI Extensions | ❌ No | ✅ [Yes](https://gateway-api-inference-extension.sigs.k8s.io/)|
37
+
| Service Mesh Support | ❌ No | ✅ Yes |
38
+
| More Features in Development | ❌ No | ✅ Yes |
39
+
| Conformance Tests | 🟡 Some | ✅ Thorough |
40
+
| # of Implementations | ✅ [33](/docs/concepts/services-networking/ingress-controllers)| ✅ [34](https://gateway-api.sigs.k8s.io/implementations/)|
41
+
42
+
43
+
## Ingress Controllers
19
44
20
45
Kubernetes as a project supports and maintains [AWS](https://github.com/kubernetes-sigs/aws-load-balancer-controller#readme), [GCE](https://git.k8s.io/ingress-gce/README.md#readme), and
Ingress frequently uses annotations to configure some options depending on the Ingress controller, an example of which
95
-
is the [rewrite-target annotation](https://github.com/kubernetes/ingress-nginx/blob/main/docs/examples/rewrite/README.md).
96
-
Different [Ingress controllers](/docs/concepts/services-networking/ingress-controllers) support different annotations.
97
-
Review the documentation for your choice of Ingress controller to learn which annotations are supported.
98
117
99
118
The [Ingress spec](/docs/reference/kubernetes-api/service-resources/ingress-v1/#IngressSpec)
100
119
has all the information needed to configure a load balancer or proxy server. Most importantly, it
@@ -104,12 +123,6 @@ for directing HTTP(S) traffic.
104
123
If the `ingressClassName` is omitted, a [default Ingress class](#default-ingress-class)
105
124
should be defined.
106
125
107
-
There are some ingress controllers, that work without the definition of a
108
-
default `IngressClass`. For example, the Ingress-NGINX controller can be
109
-
configured with a [flag](https://kubernetes.github.io/ingress-nginx/user-guide/k8s-122-migration/#what-is-the-flag-watch-ingress-without-class)
110
-
`--watch-ingress-without-class`. It is [recommended](https://kubernetes.github.io/ingress-nginx/user-guide/k8s-122-migration/#i-have-only-one-ingress-controller-in-my-cluster-what-should-i-do) though, to specify the
111
-
default `IngressClass` as shown [below](#default-ingress-class).
112
-
113
126
### Ingress rules
114
127
115
128
Each HTTP rule contains the following information:
`.spec.parameters.scope`to `Namespace`, then the IngressClass refers
@@ -376,10 +389,8 @@ IngressClass is marked as default in your cluster.
376
389
{{< /caution >}}
377
390
378
391
There are some ingress controllers, that work without the definition of a
379
-
default `IngressClass`. For example, the Ingress-NGINX controller can be
380
-
configured with a [flag](https://kubernetes.github.io/ingress-nginx/#what-is-the-flag-watch-ingress-without-class)
381
-
`--watch-ingress-without-class`. It is [recommended](https://kubernetes.github.io/ingress-nginx/#i-have-only-one-instance-of-the-ingresss-nginx-controller-in-my-cluster-what-should-i-do) though, to specify the
382
-
default `IngressClass`:
392
+
default `IngressClass`. It is recommended though, to specify the default
0 commit comments