tencent cloud

文档反馈

灰度发布

最后更新时间:2023-12-26 10:45:02

    操作场景

    随着网站流量的增加,网站开始有了广告投放的需求,广告投放需要在商品页面增加广告位。网站的开发人员新开发了 product 服务的 v2 版本,以 product v2 的 deployment 的形式提供,并希望对 product-v2 版本做灰度发布。 灰度发布概览图如下所示:
    

    操作步骤

    先将 product v2 版本的 deployment 部署至主集群:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: product-v2
    namespace: base
    labels:
    app: product
    version: v2
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: product
    version: v2
    template:
    metadata:
    labels:
    app: product
    version: v2
    spec:
    containers:
    - name: product
    image: ccr.ccs.tencentyun.com/zhulei/testproduct2:v1
    imagePullPolicy: Always
    env:
    - name: POD_NAME
    valueFrom:
    fieldRef:
    fieldPath: metadata.name
    - name: REGION
    value: "guangzhou-zoneA"
    ports:
    - containerPort: 7000
    通过 DR 定义服务版本 + 通过 VS 定义权重路由来完成灰度发布的第一步,将部分流量(50%)路由至 product v2 subset 以验证新版本,剩余部分(50%)的流量仍然路由至 product v1 版本。将以下 YAML 文件提交至主集群即可完成以上设定。
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
    name: product-vs
    namespace: base
    spec:
    hosts:
    - "product.base.svc.cluster.local"
    http:
    - match:
    - uri:
    exact: /product
    route:
    - destination:
    host: product.base.svc.cluster.local
    subset: v1
    port:
    number: 7000
    weight: 50
    - destination:
    host: product.base.svc.cluster.local
    subset: v2
    port:
    number: 7000
    weight: 50
    ---
    
    apiVersion: networking.istio.io/v1alpha3
    kind: DestinationRule
    metadata:
    name: product
    namespace: base
    spec:
    host: product
    subsets:
    - name: v1
    labels:
    version: v1
    - name: v2
    labels:
    version: v2
    配置完成后,访问 product 服务的流量将有 50%被路由至 v1 版本,50%被路由至 v2 版本,刷新网站商品页面即可验证。
    权重路由如下图所示:
    
    50%的请求路由到 product v2 版本如下图所示:
    50%的请求路由到 product v2 版本
    
    product v2 版本验证通过后,即可修改关联 product 的 VirtualService 中路由规则目的端的权重,设置访问 product 服务的所有流量(100%)至 v2 版本,设置完成后可刷新商品列表页面验证。基于 virtual Service 更改权重如下图所示:
    
    灰度发布完成如下图所示:
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持