是否所有 Knative 流量都必须通过主节点路由?

问题描述 投票:0回答:1

我的问题:用户到Knative service/pod的所有流量都必须经过Master节点吗?

例如:我作为一个集群外的客户,创建一个curl请求到一个服务(pod HelloWorld),那么我的请求和我的请求(from pod Hello World)的返回结果是否一定要经过到达目的地之前首先是主节点?

我做了一个小测试,从外部创建一个 curl 请求到我集群中的 HelloWorld 服务,并通过 tcpdump 捕获数据包流:flow traces

在我看来:

  1. HelloWorld 的卷曲流量到达驻留在 Master 中的kourier-internal pod。

  2. 然后流量被转发到 activator pod,它也在 Master 中。

  3. 现在流量被路由到HelloWorld pod所在的Worker节点

  4. 在Worker节点的HelloWorld中处理后,返回结果会按上述反向路径传回

我的解释对吗?对我来说,这种路由有点奇怪……它会产生额外的延迟,并给通往主节点的路径带来沉重的带宽压力:(有没有办法将流量直接从外部路由到我的 Pod 所在的工作节点?谢谢大家提前!

kubernetes serverless knative istio-sidecar servicemesh
1个回答
0
投票

Knative 流量流经 HTTP 入口,这可以通过集群上的多个 pod 实现,这些 pod 可以在控制平面或工作节点上运行。 (如果您使用云提供商的 Kubernetes,您将无法在控制平面节点上运行任何 pod。)

尝试将您的

envoy
pod 扩展到
replicas: 1
之外,并确保您的负载均衡器可以将流量发送到所有副本。您应该看到流量流经多条路径。 (您可能还需要扩展
activator
副本以查看完整的分布式系统。)

© www.soinside.com 2019 - 2024. All rights reserved.