1

我有一个应用程序,它在 React 中有一些后端服务和 SPA 前端构建。

我想用 istio 发布金丝雀版本。我关心的是如何管理发布策略,其中-

  1. 我把一定量的流量传到前端
  2. 当从这个新的前端完成后端请求时,流量应该被传递到新的后端服务。

为此,最好的方法是什么?

4

1 回答 1

0

它在 istio 文档中详细解释VirtualService

这里也有很好的简单解释和示例:

金丝雀部署

金丝雀部署是一种安全推出新版本服务的策略。使用 Istio,您可以使用基于百分比的 流量拆分 将少量流量引导到新版本。然后您可以在 v2 上运行 金丝雀分析 (例如检查延迟和错误率),最后将更多流量引导到新版本,直到它为所有流量提供服务。

图表

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: helloworld
spec:
  hosts:
    - helloworld
  http:
  - route:
    - destination:
        host: helloworld
        subset: v1
      weight: 90
    - destination:
        host: helloworld
        subset: v2
      weight: 10

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: helloworld
spec:
  host: helloworld
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2

更新:

DestinationRule根据 istio文档,可以使用基于散列的负载平衡来添加会话亲和性(即粘性会话) 。

希望能帮助到你。

于 2020-06-22T15:39:28.847 回答