我有一个应用程序,它在 React 中有一些后端服务和 SPA 前端构建。
我想用 istio 发布金丝雀版本。我关心的是如何管理发布策略,其中-
- 我把一定量的流量传到前端
- 当从这个新的前端完成后端请求时,流量应该被传递到新的后端服务。
为此,最好的方法是什么?
我有一个应用程序,它在 React 中有一些后端服务和 SPA 前端构建。
我想用 istio 发布金丝雀版本。我关心的是如何管理发布策略,其中-
为此,最好的方法是什么?
它在 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文档,可以使用基于散列的负载平衡来添加会话亲和性(即粘性会话) 。
希望能帮助到你。