通过网关引导出站流量

您可以配置通过网关注入安装的网关代理来管理离开网格的流量,并将其引导到外部服务。

出站网关

出站网关作为离开服务网格的出站流量的专用出口点。它作为正向代理,处理来自网格工作负载的请求,这些请求针对网格边界之外的服务。部署出站网关可以解决两种常见的安全场景:

  • 流量限制:在安全策略要求所有出站流量必须通过受控节点集的环境中,出站网关将此流量集中通过指定的出站节点。
  • 网络策略执行:当网络策略阻止应用 Pod 直接访问外部服务时,出站网关代表它们处理外部连接。

在这两种情况下,网关代理运行在具有访问外部服务必要权限的专用出站节点上。这些节点可以被更严格地监控或施加更严格的网络策略,以增强整体安全性。

配置出站流量

您可以配置通过网关注入安装的网关来引导出站流量,方法是结合使用以下 Istio 资源:

  • 使用 ServiceEntry 资源定义外部服务的属性。定义后,外部服务会注册到 Istio 服务注册表中,使您能够对目标该服务的出站流量应用 Istio 功能,如监控和路由规则。
  • 使用 GatewayVirtualServiceDestinationRule 资源建立路由规则,将流量从网格工作负载引导到通过网关代理的外部服务。

Ambient 模式下的出站路由

如果您的部署使用 ambient 模式,则必须使用 Kubernetes Gateway API 来配置出站路由,而不是使用 Istio 的 GatewayVirtualService 资源。Gateway API 提供了一种标准化的、Kubernetes 原生的方法来定义流量如何离开网格并到达外部目的地。

您可以使用 GatewayHTTPRoute(或 GRPCRoute)资源来控制网格流量如何路由到集群外的目的地。Gateway API 在 ambient 模式下得到完全支持,也可以与基于 sidecar 的部署一起使用,为入口和出口路由提供一致的配置模型。

参考