This is simple to do on the K8s level => the ingress (K8s resource) requires nginx.ingress.kubernetes.io/backend-protocol: GRPC annotation to be set for the GRPC deployments.
This is the magic ingredient that sets up the appropriate nginx configuration to route http/2 traffic to the grpc service.
For the Akash Provider - this should be configurable not just per the specific port, but per host specified in accept (!)
And for the default / global Ingress Host (<uri>) -- there should be an option too.
This is simple to do on the K8s level => the ingress (K8s resource) requires
nginx.ingress.kubernetes.io/backend-protocol: GRPC
annotation to be set for the GRPC deployments.This is the magic ingredient that sets up the appropriate nginx configuration to route http/2 traffic to the grpc service.
For the Akash Provider - this should be configurable not just per the specific port, but per host specified in
accept
(!) And for the default / global Ingress Host (<uri>
) -- there should be an option too.Refs. https://kubernetes.github.io/ingress-nginx/examples/grpc/
Extra
Cloudflare
Additionally, the gRPC should be enabled in Cloudflare -> Network -> gRPC (tick enable) if tenants use Cloudflare for the TLS termination.
Traefik
With traefik, tenants would only need to specify
h2c
scheme. Here is a working example: