1.gRPC 框架使移动应用程序可以像本地对象一样直接调用后端服务上的方法。您可以使用 gRPC 提高移动应用的带宽效率,并减少应用与在 Google Cloud Platform 上运行的后端服务之间的延迟。
使用 envoy 代理设置 grpc 后端我们应该使用网络负载平衡,网络负载平衡接受来自互联网的传入请求(例如,来自公司外部的移动客户端或服务消费者)。网络负载平衡执行以下任务
负载均衡器与池中的工作节点的传入连接。流量被转发到 envoy Kubernetes Service,该服务暴露在集群中的所有工作节点上。 Kubernetes 网络代理将这些连接转发到运行 Envoy 的 pod。
针对集群中的工作程序节点执行 HTTP 运行状况检查。
Envoy 执行以下任务:
终止 SSL/TLS 连接。
通过查询内部集群 DNS 服务发现运行 gRPC 服务的 pod。
路由和负载平衡到 gRPC 服务 pod 的流量。
根据 gRPC 健康检查协议对 gRPC 服务进行健康检查。
使用网络负载平衡公开端点以进行健康检查。
gRPC 服务(echo-grpc 和 reverse-grpc)公开为 Kubernetes 无头服务。这意味着没有分配 clusterIP 地址,并且 Kubernetes 网络代理不会对流向 Pod 的流量进行负载平衡。而是在集群 DNS 服务中创建包含 pod IP 地址的 DNS A 记录。 Envoy 会从此 DNS 条目中发现 pod IP 地址,并根据 Envoy 中配置的策略在它们之间进行负载平衡。
部署特使:
创建一个 Kubernetes ConfigMap 来存储 Envoy 配置文件 (envoy.yaml)
kubectl apply -f k8s/envoy-configmap.yaml
为 Envoy 创建一个 Kubernetes 部署:
kubectl apply -f k8s/envoy-deployment.yaml
验证两个 envoy pod 正在运行:
kubectl 获取部署特使
如需进一步阅读,请点击以下链接:
https://cloud.google.com/architecture/exposing-grpc-services-on-gke-using-envoy-proxy
有关为移动应用配置 Grpc 后端服务器的更多信息,请参阅以下链接:
https://cloud.google.com/architecture/mobile-compute-engine-grpc