跳到主要内容

3 篇博文 含有标签「kubernetes」

Content related to Kubernetes, an open-source platform for managing containerized workloads and services.

查看所有标签

bcm-engine —— 我们如何给 ChaosBlade 第二春

· 阅读需 1 分钟

这篇文章原本定稿于 2024 年 7 月 16 日,本以为老板要投稿到“哔哩哔哩技术”公众号上,后来却没有下文了。我认为这篇文章总结了我在 B 站很大一部分工作精华内容,包含了许多我的思考和有意思的技术细节。对“混沌工程”没有背景知识的读者不用担心读不懂,这篇文章主要讨论一些实际的系统实现问题。

这篇文章经过翻新打磨和新增内容后,字数来到了 16000 多字,读者反馈读起来非常费劲。为了让读者更轻松地阅读,我决定把这篇文章拆分成四章,并删去一些没什么营养的内容。目录如下,读者可以根据需要直接跳转到自己感兴趣的部分:

以下是原文的最后总结,4 个章节仍以这个顺序编排:

BCM 团队在 ChaosBlade,Chaos Mesh 和 ChaosMeta 中选择了资历最老的 ChaosBlade 作为混沌实验工具,并以此为底座搭建了上层平台。本文介绍了上述 3 个项目的情况,阐述了选择 ChaosBlade 与放弃其余 2 个项目的理由;详细解释了对 ChaosBlade fork 版本 bcm-engine 的改造,修复与升级方案;并在最后说明了整个项目仍然存在的问题与可能的解决方案。

最后说一些扫兴的话,无论我做多大的努力,都改变不了一个事实:ChaosBlade 就是个典型的大厂“缝缝补补又三年,三年又三年”的屎山项目。 除非把它当做 “忒修斯之船”,整个用现代化 K8s operator pattern 改造一通才行,那这样一来它还能叫 ChaosBlade 吗? 相信读完全部文章的你会明白我的意思。

修复 ChaosBlade 遗留多年的 Bug

· 阅读需 4 分钟

这一部分的内容是 2025 年 5 月加入的,初稿完成时候我还没有修复这些 Bug。没有公司的条条框框,行文会更加奔放和随意。

ChaosBlade 是一个“缝缝补补”的项目,它一开始肯定是不支持在容器上进行故障注入的!在容器环境执行故障注入时出现了很多真正的 BUG,且多年来社区都没有修复(足以可见 ChaosBlade 广大的用户群体到底是怎么用这个产品的。那么多人都没有能力完成修复并提出 PR?)。maintainer 对这些问题的态度是“你们要用就自己修复吧”,所以我决定把这些问题都修复掉。但由于我对 cgroupv2 并不了解,也没有生产环境去验证,所以我以下很多内容都还仅停留在 cgroupv1 版本。cgroup 这个问题可以说是 ChaosBlade 社区里的“经典话题”,maintainer 一直在 画饼说某年某月(时间都改过几次)就能完成,结果每次都过去半年没有动静。大概阿里云内部也和 B 站一样永远留在了 cgroupv1 吧。

题外话:修复以下 3 个 bug 才是捣鼓 ChaosBlade 项目过程中最有意义和收获的经历。

展望

· 阅读需 3 分钟

这篇博文摘录于《bcm-engine —— 我们如何给 ChaosBlade 第二春》。原文原本定稿于 2024 年 7 月 16 日,本以为老板要投稿到“哔哩哔哩技术”公众号上,后来却没有下文了。我认为这篇文章总结了我在 B 站很大一部分工作精华内容,包含了许多我的思考和有意思的技术细节。 对“混沌工程”没有背景知识的读者不用担心读不懂,这篇文章主要讨论一些实际的系统实现问题。

摘录部分是原文的最后一部分。本文主要介绍了 bcm-engine 的未来。 标题《展望》是写个人博客时后取的。