I am testing out both GRPC, which uses HTTP2, and the nanos unikernel. I have written a small test server in Golang that has an internal GRPC server that has requests made by a client connection in the same application. I set up TLS for the GRPC server and client and it works fine locally. It also runs properly locally as a container image using ops (which is a management tool for running nanos containers or whatever the term for that is. Running locally this way, the same container is running as would be running in GCP, though I recognize there must be differences.
When I put the instance to GPC, allowing HTTP and HTTPS in the firewall for the project, it fails. I believe that this is because HTTP2 connections are not supported or at least not how I have it set up.
I realize that I have a number of things going on here. However, if I leave the GRPC server in the application alone and in the HTTP handler call the function directly that gets the payload instead of doing a call via the GRPC client, everything works properly. I see a fair bit of documentation for using HTTP2 with GPC load balancers, and I can try that out, but I do not see anything so far on using HTTP2 with a running instance. Does anyone know if there is a way to allow HTTP2 on a GCP instance?