13 Routing traffic using the Gateway API
This chapter covers
- Differences between Ingress and Gateway APIs
- 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 have to use nonstandard extensions provided by your chosen Ingress implementation. As an alternative, a new API has been introduced—the Gateway API.
The Gateway API provides users with a broader set of capabilities for making Kubernetes Services accessible to the outside world by routing them 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 we begin, create the kiada Namespace, switch 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
The code files for this chapter are available at https://github.com/luksa/kubernetes-in-action-2nd-edition/tree/master/Chapter13.