首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker buildx -选择特定的节点以支持构建monorepo

Docker buildx -选择特定的节点以支持构建monorepo
EN

Stack Overflow用户
提问于 2021-03-30 23:05:23
回答 1查看 193关注 0票数 0

我们正在使用一个名为Tilt ()的K8s开发工具,它用大量的微服务构建堆栈的开发映像,并允许实时重新加载等等。

我已经使用带有10个副本的K8s将远程构建器荚部署到AWS buildx create集群中。但是,从构建中分离出来的构建似乎只在实际构建中使用其中的两个(基于我在集群中看到的CPU和内存度量),而其他8个则处于空闲状态。运行倾斜会启动所有微服务的并发映像构建,因此将构建步骤扩展到所有10个运行中的构建器荚是理想的。

我怀疑这是因为我们的项目目前存在于一个单一配置中,并且在项目的根级使用相同的Dockerfile.dev来构建所有映像(在构建时使用--build-arg__传递的小配置)。

  1. ,我猜对了吗?很难说,但似乎构建了基于Dockerfile上下文的buildx负载平衡。如果是,是否可以重写此行为?

  1. Alternatively,有手动选择buildx节点的方法吗?很容易编写一个选择器的脚本,该选择器遍历现有的远程节点,以分散建筑物负载

EN

回答 1

Stack Overflow用户

发布于 2021-04-01 16:52:31

FWIW -我通过这样的操作找到了一个可行的解决办法:

代码语言:javascript
复制
#!/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

这并不是真正的“负载平衡”,但这确实确保了每个服务都构建在自己的专用吊舱上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66879571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档