{"id":21354846,"url":"https://github.com/salrashid123/gcegrpc","last_synced_at":"2025-04-06T18:14:25.128Z","repository":{"id":57566611,"uuid":"41614964","full_name":"salrashid123/gcegrpc","owner":"salrashid123","description":"gRPC client/server for Google Cloud  (GKE, GCE, Istio, Traffic Director, grpc-web)","archived":false,"fork":false,"pushed_at":"2024-11-25T12:00:08.000Z","size":1305,"stargazers_count":83,"open_issues_count":2,"forks_count":23,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-30T17:11:09.482Z","etag":null,"topics":["envoyproxy","gke","google-cloud-platform","grpc","grpc-loadbalancing","load-balancer","traffic-director","xds-server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/salrashid123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-30T03:07:14.000Z","updated_at":"2024-11-25T12:00:13.000Z","dependencies_parsed_at":"2025-01-10T07:15:56.539Z","dependency_job_id":null,"html_url":"https://github.com/salrashid123/gcegrpc","commit_stats":{"total_commits":54,"total_committers":2,"mean_commits":27.0,"dds":0.01851851851851849,"last_synced_commit":"c819e64e05343c6009ddb64fb23e3768548098ce"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salrashid123%2Fgcegrpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salrashid123%2Fgcegrpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salrashid123%2Fgcegrpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salrashid123%2Fgcegrpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/salrashid123","download_url":"https://codeload.github.com/salrashid123/gcegrpc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247526762,"owners_count":20953143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["envoyproxy","gke","google-cloud-platform","grpc","grpc-loadbalancing","load-balancer","traffic-director","xds-server"],"created_at":"2024-11-22T04:14:44.869Z","updated_at":"2025-04-06T18:14:25.094Z","avatar_url":"https://github.com/salrashid123.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# gRPC on GKE and Istio\n\n\nSamples for running gRPC on GKE, Istio, Gateway, Ingress, GCE VMs and Traffic Director:\n\n\n## gRPC Loadbalancing on GKE with L7 Ingress\n\n`client_grpc_app  (via gRPC wire protocol) --\u003e ingress --\u003e (grpc Service on GKE)`\n\n- Folder: [gke_ingress_lb/](gke_ingress_lb/)\n\n## gRPC Loadbalancing on GKE Gateway\n\n`client_grpc_app  (via gRPC wire protocol) --\u003e Gateway --\u003e (grpc Service on GKE)`\n\n- Folder: [gke_gateway/](gke_gateway/)\n\n## gRPC Loadbalancing on GKE with TrafficDirector (xds loadbalancing)\n\n`client_grpc_app  (acquire gRPC lookaside loadbalancing/XDS) --\u003e GKE pod NEG address`\n\n- Folder: [gke_td_xds/](gke_td_xds/)\n\n## gRPC-web via Ingress\n\n Javascript clients:  \n     \n`client(browser) (via grpc-web protocol) --\u003e Ingress --\u003e (grpc Service on GKE)`\n\n - [grpc_web_with_gke](https://github.com/salrashid123/grpc_web_with_gke)\n\n## gRPC for GKE internal Service-\u003eService\n\n- Folder [gke_svc_lb/](gke_svc_lb/)\n      \n`client (pod running in GKE) --\u003e k8s Service --\u003e (gRPC endpoint in same GKE cluster)`\n\n\n## gRPC w/ Managed Instance Group with Container Optimized OS\n\n- Folder [gce](gce/)\n\n`client_grpc_app --\u003e L7LB --\u003e ManagedInstanceGroup`\n\n\n## Istio gRPC Loadbalancing with GCP Internal LoadBalancer (ILB)\n\n- folder `istio/`\n\n`client_grpc_app (on GCEVM) --\u003e (GCP ILB) --\u003e Istio --\u003e Service`\n\n`client_grpc_app (external) --\u003e (GCP ExternalLB) --\u003e Istio --\u003e Service`\n\nAlso see:\n- [Summary of Cloud load balancers](https://cloud.google.com/load-balancing/docs/choosing-load-balancer#summary_of_cloud_load_balancers)\n- [GCP LoadBalancing Overview](https://cloud.google.com/load-balancing/docs/load-balancing-overview#internal_tcpudp_load_balancing)\n\n\n---\n\n## Source and Dockerfile\n\nYou can find the source here:\n\n- Client and Server: [app/grpc_backend/](app/grpc_backend)\n\nAnd the various docker images on dockerhub\n\n\n- `docker.io/salrashid123/grpc_backend`\n\n\nTo run the gRPC server locally to see message replay:\n\n- Server:\n    `docker run  -p 50051:50051 -t salrashid123/grpc_backend ./grpc_server -grpcport 0.0.0.0:50051`\n\n- Client:\n    `docker run --net=host --add-host grpc.domain.com:127.0.0.1 -t salrashid123/grpc_backend /grpc_client --host grpc.domain.com:50051`  \n\nWhat 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\nwill echo back the hostname of the server/pod that handled that request.  In the example here locally, it will be all from one host.\n\n## References\n\n - [https://grpc.io/blog/loadbalancing](https://grpc.io/blog/loadbalancing)\n - [gRPC Loadbalancing on Kubernetes (Kubecon Europe 2018)](https://www.youtube.com/watch?v=F2znfxn_5Hg)\n - [gRPC-web \"helloworld\"](https://github.com/salrashid123/gcegrpc/tree/master/grpc-web)\n - [gRPC with curl](https://github.com/salrashid123/grpc_curl)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalrashid123%2Fgcegrpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsalrashid123%2Fgcegrpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalrashid123%2Fgcegrpc/lists"}