云原生-渐进式交付-纵享丝滑-金丝雀-AB Testing

云原生-渐进式交付-纵享丝滑-金丝雀-AB Testing

前置说明

上篇把开发的 Spring Boot 应用发布到 Kubernetes, 而原生的 K8S Deployment 属于滚动更新,
本篇采用 渐进式交付,分批精细化控制流量更新。

Kruise Rollout

Kruise Rollout 支持配合流量和实例灰度的金丝雀发布、蓝绿发布、A/B Testing 发布。

官网

  • https://github.com/openkruise/rollouts/blob/master/docs/tutorials/basic_usage.md
  • https://openkruise.io/rollouts/user-manuals/basic-usage/

kruise-rollout 安装

helm repo add openkruise https://openkruise.github.io/charts

helm install kruise-rollout openkruise/kruise-rollout `
--set image.repository=openkruise-registry.cn-shanghai.cr.aliyuncs.com/openkruise/kruise-rollout `
--version 0.3.0

kubectl-kruise 安装

Windows 环境下载,添加扩展名 .exe 并添加到环境变量
https://github.com/openkruise/kruise-tools/releases/download/v1.0.5/kubectl-kruise-windows-amd64.tar.gz

Demo 展示

注意

更新的资源(Deployment/Service/Ingress)必须在同个命名空间内。

获取资源名称:
kubectl get deploy,svc,ingress

Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: demo-app-svc
  annotations:
    kubernetes.io/ingress.class: higress
spec:
  rules:
    - host: test.lab.com
      http:
        paths:
          - backend:
              service:
                name: demo-app-svc
                port:
                  number: 8888
            path: /test/hello
            pathType: Exact

hosts

  • C:\Windows\System32\drivers\etc\hosts
127.0.0.1 test.lab.com

金丝雀

金丝雀发布的思想是将少量的请求引流到新版本上,因此部署新版本服务只需极小数的机器。
验证新版本符合预期后,逐步调整流量权重比例,使得流量慢慢从老版本迁移至新版本,期间可以根据设置的流量比例,
对新版本服务进行扩容,同时对老版本服务进行缩容,使得底层资源得到最大化利用。

rollout-canary.yaml

apiVersion: rollouts.kruise.io/v1alpha1
kind: Rollout
metadata:
  name: rollouts-canary-demo-app
  namespace: default
  annotations
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值