jenkins 如何在kubernetes吊舱中运行podman

oxosxuxt  于 2022-12-17  发布在  Jenkins
关注(0)|答案(1)|浏览(269)

我们正在使用Jenkins作为CI/CD解决方案,所有这些都是使用jenkins代理映像在kubernetes pod中运行的代码。我们已升级到不使用守护进程的kubernetes 1.20版本。因此,作为替代方案,我们使用podman。我们的k8s pod使用用户“abc”运行。在用于旋转代理pod的jenkins代理映像中,我们已经安装了podman,并且代理Pod运行在Linux 7.9虚拟机上。在Linux虚拟机上,我们已经设置了uid和gid

[xyz@oke-cdrnkbr37bq-nk4yoht2oja-svxwfrwpi5q-0 ~]$ cat /etc/subuid
xyz:100000:65536
abc:165536:65536
[xyz@oke-cdrnkbr37bq-nk4yoht2oja-svxwfrwpi5q-0 ~]$ cat /etc/subgid
xyz:100000:65536
zbc:165536:65536

现在,当分离舱在Jenkins启动时,我们看不到分离舱内的液体Map-

bash$ k exec -it pod-template-agent-d0tzf -n jenkins-ns -- bash
bash-4.4$ cat /proc/self/uid_map  
         0          0 4294967295

因此,如果我尝试在k8s pod中执行podman命令,我会不断收到以下错误-

bash-4.4$ podman run fedora cat /proc/self/uid_map 
Error: OCI runtime error: rootless container requires user namespaces

你知道如何解决这个用户名称空间错误并让podman工作吗?

watbbzwu

watbbzwu1#

我最近创建了Podman Jenkins agent docker图像。在链接的帖子中,你还可以看到Jenkins使用Podman Jenkins代理作为Kubernetes pod的演示。

相关问题