Skip to content
/ gcegrpc Public
forked from salrashid123/gcegrpc

gRPC client/server running loadbalanced/failover on Google Compute Engine and Google App Engine

License

Notifications You must be signed in to change notification settings

S-YOU/gcegrpc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gRPC on GKE and Istio

Samples for running gRPC on GKE and Istio:

gRPC Loadbalancing on GKE with L7 Ingress

client_grpc_app (via gRPC wire protocol) --> ingress --> (grpc Service on GKE)

  • Folder: gke_ingress_lb/

gRPC-web via Ingress

Javascript clients:

client(browser) (via grpc-web protocol) --> Ingress --> (grpc Service on GKE)

gRPC for GKE internal Service->Service

  • Folder gke_svc_lb/

client (pod running in GKE) --> k8s Service --> (gRPC endpoint in same GKE cluster)

gRPC w/ Managed Instance Group with Container Optimized OS

  • Folder gce

client_grpc_app --> L7LB --> ManagedInstanceGroup

Istio gRPC Loadbalancing with GCP Internal LoadBalancer (ILB)

  • folder istio/

client_grpc_app (on GCEVM) --> (GCP ILB) --> Istio --> Service

client_grpc_app (external) --> (GCP ExternalLB) --> Istio --> Service

Also see:


Source and Dockerfile

You can find the source here:

And the various docker images on dockerhub

  • docker.io/salrashid123/grpc_backend

To run the gRPC server locally to see message replay:

  • Server: docker run -p 50051:50051 -t salrashid123/grpc_backend ./grpc_server -grpcport 0.0.0.0:50051

  • Client: docker run --net=host --add-host grpc.domain.com:127.0.0.1 -t salrashid123/grpc_backend /grpc_client --host grpc.domain.com:50051

What client app makes ONE connection out to the Server and then proceeds to send 10 RPC calls over that conn. For each call, the server will echo back the hostname of the server/pod that handled that request. In the example here locally, it will be all from one host.

References

About

gRPC client/server running loadbalanced/failover on Google Compute Engine and Google App Engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 57.0%
  • JavaScript 21.7%
  • Dockerfile 21.3%