[RFC] OpenSergo traffic routing spec v1alpha1 proposal | 流量路由标准 v1alpha1 #9
Labels
area/traffic-routing
Category issues or PRs related to traffic routing
kind/spec-RFC
Issues or PRs for OpenSergo spec RFC
Milestone
(English version TBD...)
流量路由,顾名思义就是将具有某些属性特征的流量,路由到指定的目标。流量路由是流量治理中重要的一环,我们可以基于流量路由标准来实现各种场景,如全链路灰度、金丝雀发布、容灾路由等。
流量路由规则 (v1alpha1) 主要分为三部分:
WorkloadLabelRule
):将某一组 workload(如 Kubernetes Deployment, Statefulset 或者一组 pod,或某个 JVM 进程,甚至是一组 DB 实例)打上对应的标签TrafficLabelRule
):将具有某些属性特征的流量,打上对应的标签Workload 打标
Workload 标签规则 (
WorkloadLabelRule
) 将某一组 workload(如 Kubernetes Deployment, Statefulset 或者一组 pod,或某个 JVM 进程,甚至是一组 DB、缓存实例)打上对应的标签。对于通用的 workload 打标场景,我们可以利用 WorkloadLabelRule CRD 进行打标。特别地,对于 Kubernetes workload,我们可以通过直接在 workload 上打 label 的方式进行标签绑定,如在 Deployment 上打上
traffic.opensergo.io/label: gray
标签代表灰度。一个标准的 workload 划分应该类似于:
流量打标
流量标签规则 (
TrafficLabelRule
) 将具有某些属性特征的流量,打上对应的标签。示例 YAML:按照标签匹配进行路由
在具体的路由过程中,接入了 OpenSergo 的微服务框架、Service Mesh 的 proxy 中,只要实现了 OpenSergo 标准并进行上述规则配置,那么就能识别流量的标签和 workload 的标签。带 label 的流量就会流转到对应 label 的实例分组中;如果集群中没有该 label 的实例分组(即没有 workload 带有这个标签),则默认 fallback 到没有标签的实例上。后续版本标准将提供未匹配流量的兜底配置方式。
Updates
欢迎社区一起参与讨论。
The text was updated successfully, but these errors were encountered: