我有一个基于 jenkins/slave 容器的 Kubernetes pod,我在特权模式下安装了 docker 套接字和 docker 二进制文件以及必要的内核模块。在该 pod 内,我构建了 Docker 镜像,并在该镜像上运行 docker 容器。在该容器内,我根本没有互联网连接,因为 pod 容器使用 flannel 网络 (198.x.x.x),而该容器使用桥接 docker 网络 (172.x.x.x),该网络在 pod 容器内不可用。如何使在 Kubernetes pod 容器内创建的第二个容器内可以使用 Internet?在 Jenkins 管道中使用 Docker API 对我来说不是一个解决方案,因为它限制了错误日志的输出,而且我无法提交在第二个容器中所做的更改,因为在构建后会立即删除该容器。
不确定这篇文章是否能帮助您解决这个问题,带有 Kubernetes 的 Jenkins 声明式管道 https://radu-matei.com/blog/kubernetes-jenkins-azure/#configuring-jenkins-to-dinamically-spawn-agents-docker-containers-for-builds。本文展示了如何在 Kubernetes 中设置 Jenkins 的完整堆栈,还涉及 Docker 中的 Docker 的想法。
根据我的想法,我们可以将 pod 容器标记为container1
和 pod 中的容器为container2
.
I think container1
and container2
应该位于同一主机并共享相同的 docker 引擎。因此 flannel 网络和 docker 网络应该一起设置。
按照我的想法,网络流量为container2
应该来自container2
-> docker0
-> host
, 不应该与container1
.
请告诉我这是否合理,或者我们可以一起讨论,我认为这个问题很有趣。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)