K8S 中的 POD,如何安全的执行 docker build?

2 天前
 zerphyr

问题

服务运行环境是 k8s ,如果要执行 docker 命令,主要是安全问题,如何避免容器逃逸?

AI 提供了两种解决方案

  1. 挂载主机 sock 使用 dind 执行 docker 命令
  2. 使用 buildx/buildkit ,维护一个专门执行 docker 命令的集群提供 docker 能力

想问下大家有没有遇到类似的问题,如何解决的?

1081 次点击
所在节点    Kubernetes
12 条回复
weilai99
2 天前
用 kaniko
SmallZheng
2 天前
kaniko +1
anubu
2 天前
kaniko 不再维护了,但应该能继续用。docker 有 dind 镜像,sidecar 挂给业务容器,或 daemonset 每个节点放一个应该都行。
orFish
2 天前
@weilai99
@SmallZheng kaniko 已经 archived 了
danbai
2 天前
可以看看 firecracker-containerd 据描述他的隔离级别是对标 qemu
Clannad0708
2 天前
我工作接触过的,一种用 dind ,将宿主机的 sock 挂在进去,就是 dind 。还有可以试下用安全容器技术,katacontainer ,gvisor 。他们有自己的 sandbox 隔离容器。不和宿主机共享内核
zerphyr
2 天前
@weilai99 kaniko 不考虑,首先不维护,其次会有特性缺失
ExplodingFKL
2 天前
kaniko 算是侵入性最小的方案了,而且只是没有新特性更新了,错误修复还是在继续进行: https://github.com/chainguard-dev/kaniko

或者就是使用 sysbox : https://github.com/nestybox/sysbox 处理部分执行权限问题然后在 pod 内用 docker/podman

最后就是:不要考虑任何依赖特权模式的解决方案
weilai99
1 天前
buildah 也行
sampeng
1 天前
以前我也焦虑这个问题。后来想明白了。。这都是自己吓自己。没有任何手段从外部进来。docker build 也是自己写,ci 自动调度的。哪来的 docker 逃逸呢?
standchan
1 天前
buildkit
Lee2019
1 天前
docker context 配置一个远端的 docker host ,容器里面只要有 docker cli 即可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1156365

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX