A/B 测试
A/B 测试流程
A/B测试流程结合了金丝雀发布:
配置示例
注意:目前,A/B测试策略可用于CloneSet、StatefulSet、Advanced StatefulSet和Deployment。
实际上,A/B测试需要与金丝雀或多批次发布策略结合使用,如上图所示。
接下来,我们将提供一个关于A/B测试与多批次发布策略的示例:
apiVersion: rollouts.kruise.io/v1beta1
kind: Rollout
metadata:
name: rollouts-demo
spec:
workloadRef:
apiVersion: apps/v1
kind: Deployment
name: workload-demo
strategy:
canary:
enableExtraWorkloadForCanary: false
steps:
- replicas: 1
matches:
- headers:
- name: user-agent
type: Exact
value: pc
- replicas: 50%
- replicas: 100%
trafficRoutings:
- service: service-demo
ingress:
classType: nginx
name: ingress-demo
行为解释
当您为 workload-demo
应用新修订版本时:
- 在第一批中将更新
1
个Pod,具有HTTP头user-agent=pc
的流量将被引导到新版本Pod,其他流量将被引导到稳定版本Pod。需要手动确认到下一批。 - 在第二批中将更新
50%
的Pod,Header匹配规则将被取消,所有流量将遵循原始负载均衡规则。需要手动确认到下一批。 - 在第三批中将更新
100%
的Pod,Header匹配规则将被取消,所有流量将遵循原始负载均衡规则。