Upstream 是对后端的抽象。您可以将具有相同功能的后端应用抽象为一个 Upstream,实现路由和后端应用解耦,更灵活地支持后端应用的灰度发布、多版本管理等场景。本文为您介绍 Upstream 的概念及作用。
Upstream 当前支持对接的后端类型:函数服务、云服务器、容器服务、注册中心。
函数服务类型 Upstream
即后端类型为函数服务的 Upstream。API 网关支持对接火山引擎的函数服务,通过公网/私网的 HTTP/HTTPS 流量,触发函数代码逻辑。您可将已发布的函数封装为一个 Upstream,作为网关的路由后端。当 API 网关接收到流量时,当前函数将被触发执行,并将执行结果返回给 API 网关。
一个函数服务类型 Upstream 可抽象一个函数。
云服务器类型 Upstream
即后端类型为云服务器的 Upstream。API 网关支持对接火山引擎的云服务器,您可将同一私有网络下的多个云服务器封装为一个 Upstream,作为网关的路由后端。
一个云服务器类型 Upstream 可抽象多个云服务器。
容器服务类型 Upstream
即后端类型为容器服务的 Upstream。API 网关支持对接火山引擎的容器服务,您可将 K8S 部署的服务封装为一个 Upstream,作为网关的路由后端。API 网关会自动聚合 Upstream 来源中所有集群下的同名服务(即 Namespace、Service 及 Port 的名称均相同),将其看作一个应用。结合 Upstream 和路由权重配置功能,可以实现 K8S 集群内/跨 K8S 集群的流量管理。
一个容器服务类型 Upstream 可抽象一个/多个相同的 K8S Service。
注册中心类型 Upstream
即后端类型为注册中心的 Upstream。API 网关支持对接火山引擎的微服务引擎,您可将已发布的 Nacos 服务封装为一个 Upstream,作为网关的路由后端。当 API 网关接收到流量时,当前 Nacos 服务将被触发执行,并将执行结果返回给 API 网关。
一个注册中心类型 Upstream 可抽象多个 Nacos 服务。
spec.template.metadata.labels
),在 API 网关侧配置当前应用的多个灰度版本。之后,通过在路由中配置当前 Upstream 下多个灰度版本的流量权重,实现集群内多个版本的流量分发。