使用服务网格助力微服务部署与流量管理
1. 虚拟服务与目标规则
虚拟服务的模板中, range
指令会遍历 virtualServices
变量中定义的元素。在清单的 spec
部分, hosts
字段用于指定该虚拟服务将应用到的 Kubernetes 服务名称。在 http
部分,声明了三个路由目标:
- 一条路由匹配金丝雀测试用户的 HTTP 头 X-group
,设置为 test
,此路由始终将请求发送到新子集。
- 一条路由目标指向旧子集,另一条指向新子集。
- 权重以百分比形式指定,且权重总和始终为 100。初始时,所有流量都路由到旧子集。
为了基于 HTTP 头路由将金丝雀测试用户路由到新版本, product-composite
微服务已更新以转发 X-group
HTTP 头。
目标规则复用了之前引入的模板,用于指定微服务的版本。例如,产品微服务的目标规则声明如下:
destinationRules:
- ...
- name: product
subsets:
- labels:
version: v1
name: old
- labels:
version: v2
name: new
</