我们正在使用一个名为Tilt ()的K8s开发工具,它用大量的微服务构建堆栈的开发映像,并允许实时重新加载等等。
我已经使用带有10个副本的K8s将远程构建器荚部署到AWS buildx create集群中。但是,从构建中分离出来的构建似乎只在实际构建中使用其中的两个(基于我在集群中看到的CPU和内存度量),而其他8个则处于空闲状态。运行倾斜会启动所有微服务的并发映像构建,因此将构建步骤扩展到所有10个运行中的构建器荚是理想的。
我怀疑这是因为我们的项目目前存在于一个单一配置中,并且在项目的根级使用相同的Dockerfile.dev来构建所有映像(在构建时使用--build-arg__传递的小配置)。
。
发布于 2021-04-01 16:52:31
FWIW -我通过这样的操作找到了一个可行的解决办法:
#!/usr/bin/env bash
for dir in myMonorepoServices/*; do
# get the name of the service folder
SERVICE=$(echo $dir | cut -d'/' -f 2)
echo " Creating a remote builder for $SERVICE... "
$(docker buildx create --name $SERVICE-docker-builder --driver kubernetes --driver-opt replicas=1,namespace=docker-builder --use)
docker buildx inspect --bootstrap
done这将在远程集群上创建一个单独“命名”的构建器荚,我可以使用--builder标记直接将其作为目标,如下所示:
docker buildx build --builder=myServiceName-docker-builder
这并不是真正的“负载平衡”,但这确实确保了每个服务都构建在自己的专用吊舱上。
https://stackoverflow.com/questions/66879571
复制相似问题