程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 gcp 中设置 grpc-web -> 特使代理 -> 后端服务的最佳实践大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 gcp 中设置 grpc-web -> 特使代理 -> 后端服务的最佳实践?

开发过程中遇到在 gcp 中设置 grpc-web -> 特使代理 -> 后端服务的最佳实践的问题如何解决?下面主要结合日常开发的经验,给出你关于在 gcp 中设置 grpc-web -> 特使代理 -> 后端服务的最佳实践的解决方法建议,希望对你解决在 gcp 中设置 grpc-web -> 特使代理 -> 后端服务的最佳实践有所启发或帮助;

我已经阅读了一些教程/示例,试图找出一种简单的方法来启动带有特使代理的 grpc 后端来路由网络流量。 我成功地在本地运行此架构以进行 e2e 通信。

我找到了官方文档 https://cloud.google.com/architecture/exposing-grpc-services-on-gke-using-envoy-proxy。但我认为我现在不需要负载平衡器。

我的目标:

  • 运行 Grpc 后端服务器以支持 iOS/AndroID 应用
  • 运行 Envoy 代理以支持 Web

是否有任何现有的教程可以为 grpc 网络路由部署后端服务器和 Envoy 代理?

解决方法

1.gRPC 框架使移动应用程序可以像本地对象一样直接调用后端服务上的方法。您可以使用 gRPC 提高移动应用的带宽效率,并减少您的应用与在 Google Cloud Platform 上运行的后端服务之间的延迟。

使用 ENvoy 代理设置 grpc 后端我们应该使用网络负载平衡,网络负载平衡接受来自互联网的传入请求(例如,来自移动客户端或公司外部的服务消费者)。网络负载平衡执行以下任务 负载平衡器传入连接到池中的工作节点。流量被转发到特使 Kubernetes 服务,该服务在集群中的所有工作节点上公开。 Kubernetes 网络代理将这些连接转发到运行 Envoy 的 pod。 对集群中的工作节点执行 http 运行状况检查。 Envoy 执行以下任务: 终止 SSL/TLS 连接。 通过查询内部集群 DNS 服务来发现运行 gRPC 服务的 Pod。 将流量路由和负载平衡到 gRPC 服务 pod。 根据 gRPC Health checking Protocol 对 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

验证两个特使 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

大佬总结

以上是大佬教程为你收集整理的在 gcp 中设置 grpc-web -> 特使代理 -> 后端服务的最佳实践全部内容,希望文章能够帮你解决在 gcp 中设置 grpc-web -> 特使代理 -> 后端服务的最佳实践所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。