Istio 中的 VirtualService 和 Gateway 有什么区别?

Raj*_*mar 7 istio envoyproxy

我想了解 istio 中 VirtualService 和 Gateway 之间的区别?据我所知,VirutalService 也用于路由流量,与网关相同

Pio*_*lec 13

根据 istio 文档:

AVirtualService定义了一组在寻址主机时应用的流量路由规则。每个路由规则定义了特定协议流量的匹配标准。如果流量匹配,则将其发送到注册表中定义的指定目标服务(或其子集/版本)。

Gateway描述了在网格边缘运行的负载均衡器,接收传入或传出的 HTTP/TCP 连接。该规范描述了一组应公开的端口、要使用的协议类型、负载均衡器的 SNI 配置等。

Gateway一般用于将 a 暴露VirtualService给外界。因此,通过这个对象,我们可以控制来自外部的流量如何以及哪些流量到达我们的VirtualServices. 还可以指定如何Gateway处理流量,例如TLS 终止SNI 直通

有些配置只有在 和Gateway一起VirtualService工作时才可能实现。

简而言之Gateway, 是针对外部流量,而VirtualService是针对 istio 集群内部已有的流量。