Kubernetes releases ingress2gateway tool for upcoming GA of Gateway API
kubernetes.io
kubernetes.io
The Ingress API is fine as long as you're in the "basic proxying with simple path-based routing" territory, but once you want to do something more serious (route by query string, configure weighted load balancing, work with TLS, deal with methods, etc - let alone other protocols than HTTP) you're kinda stuck with vendor-specific extensions that mostly rely on annotations.
Kong has an implementation of Gateway API for HTTP(S), TCP, UDP, TLS, gRPC that aims to offer a fairly smooth transition from Ingress to Gateway API by supporting both in our Kong Ingress Controller and working on conversion tooling (we're the only provider other than nginx currently available in the ingress2gateway tool). We strongly believe that (at least Kong's implementation of) Gateway API will be much easier to use than Ingress.
You can try out Kong's (certified conformant with Gateway API "core" profile) beta implementation by following [1] for HTTP. There's a guide for gRPC as well, among others [2]. As Kong's implementation of Gateway API [3] is nearing general availability, we're very open to community feedback.
[1] https://docs.konghq.com/kubernetes-ingress-controller/2.12.x...
[2] https://docs.konghq.com/kubernetes-ingress-controller/2.12.x...
Except for weighted load balancing*, these are all things NGINX does, which Kong is built on via OpenResty, right? What makes Kong different? (Trying to be open to explore even though I was disappointed when Insomnia users got locked out of their data unless they signed up for an account when they updated what was marketed as an open source project)
* Which I think NGINX Plus, a competitor, probably has, and they have an Ingress controller for Kubernetes that would likely get updated to use the Gateway API soon.
I am specifically talking just about OSS functionality in the Kong Ingress Controller. It can assign weights to service backends.
And, FWIW, Insomnia 8.3 defaults to local projects (again)
https://konghq.com/blog/product-releases/insomnia-8-3
Gateway API is a broad community standard governed by SIG Network - fingers crossed for various other implementations (including mesh) working their way to GA implementation-wise - this will make the standard stronger and the community more vibrant.
Especially with some vendor helm charts, it’s often a nightmare if you’re deviating from the base config.
Past experience with k8s suggests this hope is prone to being wishful thinking.
More importantly you will want to check your specific Gateway implementation for support.
I guess when traefik goes all-in on gateway (they were one of the earliest with support for it), then it will make sense.
[0]: https://doc.traefik.io/traefik/routing/providers/kubernetes-...
I wonder how developers will be able to develop extensions for it.
The Gateway API is a relatively straightforward implementation of "north-south" traffic and doesn't try to handle "east-west" traffic, limiting its complexity. Its existence means I can use something more sane like Contour, but it's built on common resources that Istio can understand nicely as well, if need be. So the overall advantage is that you can hop between implementations without having to relearn everything from scratch.
My biggest frustration with the Gateway API is actually how extensions are developed: the spec just doesn't (or didn't last time I looked) touch timeouts other than just saying "implementation defined" because of the different ways that's handled currently. To create extensions, just define your own custom resource that does whatever you want not currently covered by the spec.
So the the new Gateway API seem to support more use cases so the user can use a more portable API.
Istio and many other tools already supports this: https://gateway-api.sigs.k8s.io/implementations/#implementat...
In this case. Gateway is merely a new resource type introduced to replace the aging and inadequate Ingress resource. GatewayClass was introduced alongside it as a way for the infrastructure providers to define essentially a "template" for how Gateways can be created that are tied back to a specific implementation.
This is similar to how StorageClass and PersistentVolume (two other resources) already work for defining block storage in Kubernetes.
This isn't buzzword soup and the original commenter just has no clue what they are talking about so there isn't any point in defending their potential point because there isn't one there. The text repeats these terms a lot because they are what are being discussed, as in -concrete- things. Not buzzwords.
FWIW I hate buzzwords, marketing and pretty much everything else of that ilk. Talk is cheap, show me the code. In this case, this is the code.
This paragraph:
> Subsequently, cluster operators utilize these GatewayClasses to deploy gateways. A Gateway in Kubernetes' Gateway API defines how external traffic can be directed to Services within the cluster, essentially bridging non-Kubernetes sources to Kubernetes-aware destinations. It represents a request for a load balancer configuration aligned with a GatewayClass’ specification. The Gateway spec may not be exhaustive as some details can be supplied by the GatewayClass controller, ensuring portability. Additionally, a Gateway can be linked to multiple Route references to channel specific traffic subsets to designated services.
At least when using Google search where double-quotas seem to be not always understood as the "required term" anymore.