Skip to main content

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匹配规则将被取消,所有流量将遵循原始负载均衡规则。