灰度发布就是先上线一个新版本,然后根据规则将一小部分用户导向到新应用,观察新版本在生产环境的表现,如果达到预期,则逐步将流量切换到新版本中。
将所有流量导向一个版本
1 | apiVersion: networking.istio.io/v1alpha3 |
将流量进行拆分
按照权重进行拆分
1 | apiVersion: networking.istio.io/v1alpha3 |
按照header进行拆分
1 | apiVersion: networking.istio.io/v1alpha3 |
按照浏览器进行拆分
其实也是按照header来进行区分
1 | apiVersion: networking.istio.io/v1alpha3 |
按照请求地址进行拆分
1 | apiVersion: networking.istio.io/v1alpha3 |
按照用户源IP进行流量拆分
1 | ...... |
多个条件同时满足时,进行流量拆分
1 | apiVersion: networking.istio.io/v1alpha3 |
满足其中一个条件
1 | apiVersion: networking.istio.io/v1alpha3 |
当对同一目标有多个规则时,会按照在 VirtualService 中的顺序进行应用,换句话说,列表中的第一条规则具有最高优先级。
PS:如果系统分布式部署,有A,B,C,D,E服务,如果仅需要对D服务进行灰度发布时,仅对D服务配置VirtualService和DestinationRule就行,其他服务不需要配置。

