我有一个运行在 AWS EC2 实例上的 kubernetes 集群,并作为网络(cni)编织。我已禁用 docker 网络(ipmask 和 iptables),因为它由 weave 管理(以避免网络冲突)。
我已经在这个集群上部署了我的 Jenkins 作为 K8s pod,这个 jenkins 使用 jenkins kubernetes 插件根据我定义的 pod 和容器模板生成动态从属。这些从容器中有 docker 客户端,它通过 docker.sock 连接到主机 docker 引擎
因此,当我在 Jenkins 中运行任何作业时,它会启动一个从属服务器,并在此克隆一个 git 存储库并开始构建存储库中存在的 Dockerfile。
我的示例 dockerfile 如下所示:
FROM abc:123
RUN yum update
因此,当容器开始构建它时,它会尝试连接到 redhat 存储库以更新本地存储库并在此处失败。为了调试,我登录到这个容器并尝试 wget/CURL 一些包,发现这个容器中没有互联网连接。
我怀疑在构建 docker 时会启动中间容器,而这些容器不是由 weave 管理的,因此它们没有互联网连接。
需要建议。