Kubernetes 通过其kube-proxy
. Kubernetes 的 kube-proxy 本质上是一个 L4 负载均衡器,因此我们不能依赖它来负载均衡 L7-transport,例如多个 gRPC 实时连接或基于 http-headers、cookie 等的负载均衡。
像istio这样的服务网格实现可以在 L7 级别处理这些模式,包括 gRPC。但我一直认为 Service Mesh 只是 Kubernetes 之上的另一层,具有额外的功能(加密流量、蓝/绿部署等)。例如,我的假设始终是 Kubernetes 应用程序应该能够在没有 Mesh(例如用于开发/测试)或打开 Mesh 的情况下在 vanilla Kubernetes 上工作。在 L7 上添加这种高级流量管理打破了这一假设。我将无法再在普通 Kubernetes 上工作,我将被绑定到 Istio 数据平面(Envoy)的特定实现。
请告诉我我的假设是否正确或为什么不正确?在这个互联网上没有太多关于这种类型的关注点分离的信息。