首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kaniko和BuildKit/Buildx有什么区别?

Kaniko和BuildKit/Buildx有什么区别?
EN

Stack Overflow用户
提问于 2021-05-11 23:40:34
回答 1查看 3.8K关注 0票数 11

据我所知:

  • 它们都是构建容器映像的工具。
  • 构建本身运行在容器中。
  • 构建可以在远程节点上进行,例如在Kubernetes集群(卡尼科BuildKit)中。
  • 它们都提供了诸如层缓存之类的高级功能。

我能收集到的差异:

  • 安全模型(卡尼科)
  • BuildKit利用了更多的最新发展,例如缓存清单和清单列表。
  • BuildKit支持多种体系结构

我不清楚的是,这2套工具之间的重叠程度,以及何时应该使用其中一种而不是另一种。例如,这两种工具似乎都很好地涵盖了在Kubernetes集群上自我托管远程映像构建场的用例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-15 14:31:32

尽管有重叠的特点,但主要的区别是:

代码语言:javascript
复制
╔══════════════════════════════╦════════════╦═════════╗
║                              ║ BuildKit   ║ Kaniko  ║
╠══════════════════════════════╬════════════╬═════════╣
║ build with no root or daemon²║ ✔          ║ ✔       ║
║ build multi-architecture³    ║ ✔          ║         ║
║ remote layer caching⁴        ║ ✔          ║ ✔       ║
║ local layer caching⁵         ║ ✔          ║         ║
╚══════════════════════════════╩════════════╩═════════╝

Kaniko和BuildKit都可以运行无守护无根,但实际上,在我看来,Kaniko更容易在非根容器中构建容器。Kaniko “生成为非特权环境中容器中的根用户”,但不需要根程序或守护进程。当通过BuildKit公开时,BuildKit需要一个特权的停靠守护进程,但是BuildKit不需要它的独立形式的守护进程或根权限(带有一些工具,比如RootlessKit)。

Kaniko在撰写本文时不支持多体系结构构建。https://docs.docker.com/desktop/multi-arch/#build-multi-arch-images-with-buildx

BuildKit和⁴支持基于注册表的缓存。然而,BuildKit要求注册中心支持缓存清单

BuildKit支持多个--cache-to选项,包括本地文件系统。构建/#缓存-到

通常,构建环境或平台的约束/特性将决定哪种工具最合适,如果两者兼备,速度可能会帮助您做出决定(尽管这应该被彻底基准化)。

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

https://stackoverflow.com/questions/67495607

复制
相关文章

相似问题

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