Buildbarn on Kubernetes:根据编译负载自动伸缩 Worker 的四种方案
把 Buildbarn 自身的负载指标,转化为 Kubernetes 的行动指令。
在 Kubernetes 上运行 Buildbarn 作为远端执行(Remote Execution)/ 远程缓存后端时,一个常见诉求是:根据 CI 编译任务的规模,动态调整 Worker 的数量,从而既扛得住编译高峰,又不在低谷期浪费资源。本文梳理了四种主流方案,并给出选型建议。
把 Buildbarn 自身的负载指标,转化为 Kubernetes 的行动指令。
在 Kubernetes 上运行 Buildbarn 作为远端执行(Remote Execution)/ 远程缓存后端时,一个常见诉求是:根据 CI 编译任务的规模,动态调整 Worker 的数量,从而既扛得住编译高峰,又不在低谷期浪费资源。本文梳理了四种主流方案,并给出选型建议。
在前两篇 bazel-remote 系列文章里,我们对比了 S3 后端与一致性哈希两种横向扩展方案,也给出过"分层缓存(L1 + L2)是最佳实践"的结论。但那个结论停留在架构层面——具体怎么配?数据到底怎么流动?性能如何保障?
本文就把这个"最佳实践"落到地面:剖析 bazel-remote 原生两级存储的工作原理,并给出可直接套用的命令行与 YAML 配置。
在上一篇《bazel-remote 多实例部署:两种横向扩展方案与性能对比》中,我们梳理了共享云存储与负载均衡+一致性哈希两种横向扩展思路。但留下了一个关键问题:当 S3 后端(这里用 RustFS)与 bazel-remote 部署在同一高速网络时,两种方案的延迟差距还大吗?
本文就聚焦这个真实场景,给出量化的延迟对比与选型建议。
在开源代码托管平台的选择上,Gitea 凭借轻量、易部署的特性,一直是很多开发团队的首选。但近两年来,Forgejo 的出现和崛起,给这个领域带来了新的变量。
Gitea 和 Forgejo 到底是什么关系?它们的 CI/CD 能力有何差异?如何基于它们搭建现代化的 DevOps 流水线?又能否将 Kubernetes 作为 CI/CD 的执行环境?
这篇文章将基于我们团队的调研和实践,一次性讲清楚这些问题。
在 Jenkins 容器中使用 buildah push 推送镜像时,设置登录认证主要有三种方式。将凭证硬编码在命令里会带来严重的安全风险,因此在实际的 CI/CD 实践中,更推荐采用"登录 (Login) + 配置文件 (Authfile)“的方式。