我们正在使用一个名为 Tilt ( https://tilt.dev/ )的 K8s 开发工具,它使用大量微服务构建堆栈的开发映像,并允许实时重新加载等。
buildx create
我已经使用10 个副本将远程构建器 pod 部署到 AWS K8s 集群。但是,分离构建似乎只使用其中两个 pod 进行实际构建(基于我在集群中看到的 CPU 和内存指标),而其他 8 个则处于空闲状态。运行向上倾斜会启动所有微服务的并发镜像构建,因此将构建步骤分散到所有 10 个正在运行的构建器 pod 上是理想的。
我怀疑这是因为我们的项目当前存在于 monorepo 中,并且在项目的根级别使用相同的 Dockerfile.dev 来构建所有图像(在构建时使用的次要配置传入--build-arg
)
我对此的怀疑是正确的吗?很难说,但似乎 buildx 负载平衡基于 Dockerfile 上下文。如果是这样,可以覆盖此行为吗?
或者,有没有办法手动选择 buildx 节点?很容易编写一个在现有远程节点上循环的选择器以分散构建负载