云原生架构与 GitOps 实战
王炜
前腾讯云 CODING 架构师
6217 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
云原生架构与 GitOps 实战
15
15
1.0x
00:00/00:00
登录|注册

26|生产稳定的秘密武器:如何实施自动化渐进式交付?

你好,我是王炜。
在上一节课,我为你介绍了什么是金丝雀发布以及如何实施自动化金丝雀发布。
在实施金丝雀发布的过程中,我们通过 Argo Rollout 的金丝雀策略将发布过程分成了 3 个阶段,每个阶段金丝雀的流量比例都不同,经过一段时间之后,金丝雀环境变成了新的生产环境。实际上,这也是一种渐进式的交付方式,它通过延长发布时间来保护生产环境,降低了发生生产事故的概率。
不过,这种渐进式的交付方式存在一个明显的缺点:无法自动判断金丝雀环境是否出错。
这可能会导致一种情况,当金丝雀环境在接收生产流量之后,它产生了大量的请求错误,在缺少人工介入的情况下,发布仍然按照计划进行,最终导致生产环境故障。
为了解决这个问题,我们希望渐进式交付变得更加智能,一个好的工程实践方式是:通过指标分析来自动判断金丝雀发布的质量,如果符合预期,就继续金丝雀步骤;如果不符合预期,则进行回滚。这样,也就能够避免将金丝雀环境的故障带到生产环境中了,这种分析方法也叫做金丝雀分析。
这节课,我们就来学习如何将 Argo Rollout 和 Prometheus 结合,实现自动渐进式交付。
在开始今天的学习之前,你需要做好下面这些准备。
按照第一章第 2 讲的内容在本地配置好 Kind 集群,安装 Ingress-Nginx,并暴露 80 和 443 端口。
配置好 Kubectl,使其能够访问 Kind 集群。
按照第 24 讲的内容安装好 Argo Rollout 以及 kubectl 插件。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何实施自动化渐进式交付,并结合 Argo Rollout 和 Prometheus 实现自动渐进式交付。通过逐步增加金丝雀环境的流量比例,并进行自动金丝雀分析和回滚,保护生产环境。文章详细介绍了实战环节,包括配置 Ingress-Nginx 和 ServiceMonitor、验证 Ingress-Nginx 指标以及自动渐进式交付实验。通过这些步骤,读者可以了解在 Kubernetes 平台上实现自动渐进式交付,并学习到相关工程实践方式。文章还提到了思考题,引发读者思考自动分析失败导致回滚时是否有必要将镜像版本回写到 GitOps 应用定义的仓库中。整体而言,本文深入浅出地介绍了渐进式交付的实施方法,以及如何结合工具实现自动化渐进式交付,对于想要深入了解该领域的读者具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《云原生架构与 GitOps 实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • ghostwritten
    在这篇 helm 部署 prometheus-operator的时候卡住了,发现有两个镜像没有拉取成功,发现是registry.k8s.io: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0 registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.8.0 我利用 github action 自动拉取registry.k8s.io镜像推送dockerhub,重新定制了kube-prometheus-stack的charts并推送到github package或者私有harbor,总结了一篇文章: https://mp.weixin.qq.com/s/8AYyAb-Uj8dOWxQxHCfD6A

    作者回复: 👍🏻 这里确实是有网络问题,很棒的解决方案!

    2023-03-01归属地:北京
    1
  • Sophia-百鑫
    我在25讲金丝雀自动化发布实战的基础上,直接进行了本讲的实战,完成按老师的步骤执行。发现http://progressive.auto/ 一直显示的是绿色格子。 如何解决?

    作者回复: 检查一下 ingress 路由策略

    2023-08-11归属地:上海
  • gyl1989113
    问下大佬工作中基本上都用argocd嘛。。我看tekton就一章节,jenkins看不到~

    作者回复: Jenkins 作为 ci 工具用的比较多,持续部署就不太擅长了。

    2023-02-12归属地:四川
    2
  • m1k3
    有必要,可以作为历史数据分析。这个版本镜像有什么问题可能推给开发者debug
    2023-02-06归属地:广东
    1
  • Amosヾ
    镜像版本肯定需要回写到仓库中,否则开始自动更新的应用岂不是要重复执行发布回滚的操作。
    2023-02-06归属地:广东
    1
    1
  • DeenJun
    如果要把版本回写到仓库,那就是argocd要有git的写入权限?这感觉不是一个好的实践呢
    2023-12-09归属地:广东
  • Geek_9acf33
    需要,gitops不就是为了让线上环境跟git仓库里一致
    2023-12-04归属地:广东
  • 无名无姓
    验证需要哪些指标呢?
    2023-02-06归属地:北京
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部