Today, Kong Ingress Controller (KIC) 2.2 is now generally available. KIC 2.2 marks a major milestone in the development of the Kong Ingress Controller, as it is the first release containing a marquee feature, Gateway API. This represents a major milestone for Kong as we continue to keep up to date with the upstream community and provide the best customer experience for KIC customers.
Gateway API is an open source project managed by the Kubernetes SIG Network community. The project aims to innovate and expand service networking APIs within Kubernetes. Gateway API consists of a collection of new APIs designed to functionally replace Ingress API. Kong’s implementation follows the current branch of Gateway API, versioned v1alpha2.
As of KIC 2.2, the following Gateway APIs are available in the 2.2 build of the Kong Ingress Controller (KIC), with more to come in future updates:
Introduction to Gateway API
Gateway API is a collection of resources that model service networking in Kubernetes. These resources (GatewayClass, Gateway, HTTPRoute, TCPRoute, Service, etc.) are a potential replacement for Ingress API, which is available in Kubernetes today.
Gateway API contains three primary resources:
- GatewayClass: Defines a set of gateways with a common configuration and behavior
- Gateway: The Gateway which routes traffic, in our case Kong Gateway
- Routes: Describes how traffic coming via the Gateway maps to the Services
Designed by the Kubernetes community, Gateway represents the next step in managing ingress traffic for Kubernetes clusters. The well-known Ingress API in Kubernetes is limited, as it only delivers a subset of the functionality now being made available with the Gateway API. The Gateway and Route resources provide additional features and capacities such as:
- True Layer 4 support (TCPRoute, UDPRoute, e.t.c.)
- Advanced traffic control (e.g., port-based route matching)
- Resilience features (e.g., multiple services for rules, with weights)
Gateway API marks a significant paradigm shift in how ingress traffic configuration is expressed in Kubernetes. When you create a Gateway Resource (instead of a Deployment) to deploy and manage your Gateway Servers in the cluster, you now can manage their configuration (for things like the listening addresses and ports) using standard Kubernetes APIs and tools like kubectl instead of managing command-line flags, environment variables, etc.
Gateway API in KIC 2.2
With KIC 2.2, you can direct Layer 7 traffic using the HTTPRoute API. Compared to the Ingress API, this will allow you to configure multiple topical hostnames for traffic filtration and allow for a robust assortment of matching rules that will allow you to tune routing in detail according to method, path and header matching rules.
This is an early stage of development for our HTTPRoute support with the core functionality in place but some ancillary features yet to come: readers can expect that, in future iterations, we’ll be adding features such as query parameter matching, regex support for matches, traffic filtration for header injections and weighted and load-balanced service support.
To get started, view our documentation.
As mentioned, KIC 2.2 represents the first step in fully supporting the full functionality of Gateway APIs spec. Please do note that this feature is currently in alpha. Both the API (maintained by Kubernetes SIG Network) and the Kong implementation are likely to change at any moment.