知识卡片
路由目标定义与路由策略分离
内容
描述”服务有哪些可路由的目标”和描述”流量该怎么分配到这些目标”是两件独立的事,被拆成两种资源:一种只声明某个服务按标签(如 version)划分出哪些子集存在,不涉及任何流量分配;另一种引用这些子集,定义匹配条件、权重、镜像等具体路由策略。同一份子集定义可以被多条路由规则复用,改路由策略时不用碰子集定义,反之亦然。发散:这是”资源清单”与”调度策略”分离的通用模式,和 Kubernetes 里 Deployment(声明有哪些 Pod)与 Service selector(声明怎么选中它们)的关系是同构的——把”存在什么”和”怎么用”分成两层,任何一层变化都不牵连另一层。
参考来源
《Istio入门与实战》第7章《把请求路由到服务的指定版本》