<p>I'm kind of a newbie at using GCP/Kubernetes. I want to deploy both a GRPC service and a client to GCP. </p>

<p>I have read a lot about it and have tried several things. There's something on cloud endpoints where you compile your proto file and do an api.config.yaml. (<a href="https://cloud.google.com/endpoints/docs/grpc/get-started-grpc-kubernetes-engine" rel="nofollow noreferrer">https://cloud.google.com/endpoints/docs/grpc/get-started-grpc-kubernetes-engine</a>)</p>

<p>That's not what I'm trying to do. I want to upload a GRPC service with it's .proto and expose its HTTP/2 public IP address and port. Then, deploy a GRPC client that interacts with that address and exposes REST endpoints.</p>

<p>How can I get this done?</p>

<p>To deploy a grpc application to GKE/Kubernetes:</p>

<ol>
<li>Learn about gRPC, follow one of the quickstarts at <a href="https://grpc.io/docs/quickstart/" rel="noreferrer">https://grpc.io/docs/quickstart/</a></li>
<li>Learn about how to build Docker images for your application.

<ul>
<li>Follow this Docker tutorial: <a href="https://docs.docker.com/get-started/part2/#conclusion-of-part-two" rel="noreferrer">https://docs.docker.com/get-started/part2/#conclusion-of-part-two</a></li>
</ul></li>
<li>Once you have a Docker image, follow <a href="https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app" rel="noreferrer">https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app</a> tutorial to learn how to:

<ul>
<li>push a container image to Google Container Registry</li>
<li>create a GKE cluster</li>
<li>deploy the container image</li>
<li>expose it on public internet on an IP address.</li>
</ul></li>
</ol>

<p>These should be good to start with.</p>

<p>Note that gRPC apps aren't much different than just HTTP web server apps. As far as Kubernetes is concerned, they're just a container image with a port number. :)</p>
