13 Routing Traffic using the Gateway API
This chapter covers
- Differences between Ingress and the Gateway API
- Using Istio as the Gateway API provider
- Exposing HTTP and TLS services externally
- Exposing TCP, UDP, and GRPC services externally
- Traffic routing, mirroring, and splitting
In the previous chapter, you learned how to expose Services externally using the Ingress resource. However, the features supported by the standard Ingress API are limited. For real-world applications, you’re forced to use non-standard extensions provided by your chosen Ingress implementation. As an alternative, a new API has now been introduced: the Gateway API.
The purpose of the Gateway API is to provide users with a broader set of capabilities to expose Kubernetes Services to the outside world through one or more gateway proxies. These proxies support not only HTTP and TLS, but also generic TCP and UDP Services. So while Ingress is an L7 proxy, the Gateway API supports proxies down to L4. In this chapter, you’ll learn more about this new API.
Before you begin, create the kiada Namespace, change to the Chapter13/ directory, and apply all the manifests in the SETUP/ directory by running the following commands:
$ kubectl create ns kiada $ kubectl config set-context --current --namespace kiada $ kubectl apply -f SETUP -R
NOTE
You’ll find the code files for this chapter at https://github.com/luksa/kubernetes-in-action-2nd-edition/tree/master/Chapter13.