我们正在使用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工作吗?
1条答案
按热度按时间watbbzwu1#
我最近创建了Podman Jenkins agent docker图像。在链接的帖子中,你还可以看到Jenkins使用Podman Jenkins代理作为Kubernetes pod的演示。