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: Standards/scs-0219-v1-kaas-networking.md
+21-2Lines changed: 21 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ track: KaaS
10
10
11
11
Kubernetes defines a networking model that needs to be implemented by a separate CNI plugin.
12
12
Beyond basic connectivity within the cluster, however, there are many networking features that are specified but optional.
13
-
Some of these optional features provide vital functionality, such as the NetworkPolicy API and the Ingress API.
13
+
Some of these optional features provide vital functionality, such as the NetworkPolicy API and the Gateway API.
14
14
15
15
This standard specifies a minimal set of networking features that users can expect in clusters created by an SCS-compliant KaaS provider.
16
16
@@ -78,19 +78,38 @@ It has not been stabilized yet, so currently we can at most recommend CNI plugin
78
78
79
79
The Ingress API allows the external exposure of HTTP/HTTPS-based services running in the cluster.
80
80
Unlike the L3/L4-based LoadBalancer Service type, Ingress provides L7 load balancing, HTTP routing, and TLS termination for services.
81
-
This functionality can be provided within the cluster by a pod-based ingress controller such as `ingress-nginx`, that exposes Ingress resources as Services.
81
+
This functionality can be provided within the cluster by a pod-based ingress controller such as Traefik, that exposes Ingress resources as Services.
82
82
83
83
However, there are also Ingress controllers that integrate with underlying infrastructure and may help to reduce overhead.
84
84
Examples for this are the Cilium CNI plugin, which comes with built-in Ingress support, and the Octavia Ingress controller, which may be a good choice if OpenStack Octavia is already used to provide L3/L4 load balancing.
85
85
86
86
The CSPs that manage the underlying infrastructure can of course make the best choice for such an integrated Ingress controller, so they should be encouraged to do so.
87
87
Even with a CSP-provided default Ingress controller present, users will be able to use alternative Ingress controllers by creating a new `IngressClass`, which can then be referenced in Ingress resources.
88
88
89
+
#### Gateway API
90
+
91
+
The Kubernetes Gateway API is the successor to the Ingress API and provides a more expressive, role-oriented model for managing traffic into a cluster.
92
+
It introduces new resource types, enabling more flexible and extensible traffic routing across L4 and L7.
93
+
94
+
Unlike Ingress, which is a single resource with limited extensibility, the Gateway API separates concerns between infrastructure providers and application developers:
95
+
96
+
- Infrastructure providers define and manage GatewayClass and Gateway resources.
97
+
- Application developers attach routing rules via Route resources such as HTTPRoute.
98
+
99
+
This separation allows for safer multi-tenancy and clearer ownership boundaries, which are particularly relevant in managed Kubernetes environments.
100
+
101
+
The Gateway API is designed to be implementation-agnostic but requires a controller to reconcile its resources, similar to Ingress.
102
+
Support for the Gateway API is growing across multiple projects, including implementations based on Envoy, HAProxy, and CNI-integrated solutions such as Cilium.
103
+
104
+
While the Gateway API is more powerful and flexible than Ingress, it is still evolving and not yet universally supported across all environments and tooling.
105
+
89
106
## Decision
90
107
91
108
CSPs MUST provide a network plugin that fully supports `NetworkPolicy` resources in the API version `networking.k8s.io/v1`.
92
109
CSPs SHOULD provide a network plugin that supports or is working on support for the `AdminNetworkPolicy` and `BaselineAdminNetworkPolicy` resources of the `policy.networking.k8s.io` API group, in their latest version, up to `v1`.
93
110
94
111
CSPs SHOULD offer the option for a managed, `networking.k8s.io/v1`-compliant Ingress controller and a default `IngressClass` resource for this controller.
95
112
113
+
CSPs SHOULD offer support for the Gateway API (`gateway.networking.k8s.io`), including at least the `GatewayClass`, `Gateway`, and `HTTPRoute` resources, either as a managed offering or as an installable option.
114
+
96
115
CSPs MAY add default networking restrictions, using either `networking.k8s.io/v1`-compliant `NetworkPolicy` resources with a policy operator, or alternatively any cluster-wide network policy extensions provided by the CNI plugin.
0 commit comments