Introduction Hi. In this video we’re going to look at gRPC routing with the Cilium Gateway API. This is a feature introduced in Cilium 1.15. First, what is gRPC? In short, it is a framework and protocol used to connect microservices. It is a high-performance, bidirectional streaming protocol designed to work well across multiple programming languages. We’ve already talked before about how Cilium can act as a Gateway API implementation, meaning it can route and load-balance traffic into your Kubernetes cluster. What Cilium 1.15 adds is support for gRPC routing. That means we can route traffic for a specific gRPC service or even a specific gRPC method to a particular backend on a specific port. gRPC routing overview To show this, I’m using the Microservices Demo project, which is a well-known sample application composed of many microservices communicating over gRPC. The end result is an online boutique application with products, pricing, currencies, and shopping cart functionality. In this demo, we’re going to access some of those gRPC-backed services directly, particularly the currency service and the product catalog service, as an external user coming through the Gateway. Gateway API recap For the demo environment I’m using the advanced Gateway API use cases lab. I have a Kubernetes 1.27 cluster, Cilium is installed as the Gateway API implementation, and I’m running Cilium 1.15. First I deploy the microservices application. While the pods are coming up, I also download the protobuf file. With gRPC, you need the proto definition because it describes the services, methods, and message structures. For example, the currency service has a method called GetSupportedCurrencies, and the product catalog service has a method called ListProducts. Those definitions are what let us make meaningful gRPC requests. Once the application is healthy, we can look at what is new in Cilium 1.15: support for the GRPCRoute resource. GAMMA route configuration In this demo I have two GRPCRoutes. Both are attached to a Gateway that I already created. One route matches the product catalog service and its ListProducts method, and sends that traffic to the product catalog backend on port 3550. The other matches the currency service and its GetSupportedCurrencies method, and sends it to the currency service on port 7000. So the key idea is that the Gateway API is now able to inspect gRPC service and method information and use that as the routing criterion. Deploy Gateway API I apply the GRPCRoutes and retrieve the Gateway IP address. Then I use grpcurl, which is essentially the gRPC equivalent of curl, to send requests through the Gateway. First I make a request to CurrencyService/GetSupportedCurrencies using the proto file and the Gateway IP. The call succeeds and returns the list of supported currency codes. That confirms that gRPC routing through the Gateway is working. Then I make another request to the product catalog service using ListProducts. This returns the list of products, including names, descriptions, and prices, showing that I can access those gRPC services from outside the cluster via the Gateway. So with Gateway API and Cilium 1.15, we can now route gRPC traffic into Kubernetes without needing to install a separate ingress controller or service mesh. That’s all for this video. Thank you very much for watching.