同时访问k8上的docker.sock

我想请您提供以下问题的帮助/build议。 我们使用竹子作为我们的CI,我们有远程竹代理运行K8s。

在我们的构build中,当testing运行正确时,我们有创buildDocker镜像的步骤。 为了远程的竹代理,我们通过docker.socket公开了Docker。 当我们只有一个远程代理(testing它是如何工作的)时,一切正常,但是最近我们增加了远程代理的数量。 现在它发生的事情是,一个构build卡在Docker镜像构build步骤,不会移动。 我们必须停止构build并再次运行。 通常在日志中没有任何有用的信息,但一旦出现,这将出现。

24-May-2017 16:04:54任务“:…”的执行失败。
24-May-2017 16:04:54> Docker执行失败
24-May-2017 16:04:54命令行[docker build -t …]返回:
24-May-2017 16:04:54 time =“2017-05-24T16:04:54 + 02:00”level = info msg =“设备或资源忙”

这就是我们的k8s deployment样子:

 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: bamboo-agent namespace: backend-ci spec: replicas: 5 template: metadata: labels: app: bamboo-agent spec: containers: - name: bamboo-agent stdin: true resources: . env: . . . ports: - . volumeMounts: - name: dockersocket mountPath: /var/run/docker.sock volumes: - hostPath: path: /var/run/docker.sock name: dockersocket 

这里是远程竹代理的Dockerfile

 FROM java:8 ENV CI true RUN apt-get update && apt-get install -yq curl && apt-get -yqq install docker.io && apt-get install tzdata -yq RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && mv kubectl /usr/local/bin RUN echo $TZ | tee /etc/timezone RUN dpkg-reconfigure --frontend noninteractive tzdata RUN wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64 RUN chmod +x /usr/local/bin/dumb-init ADD run.sh /root ADD .dockercfg /root ADD config /root/.kube/ ADD config.json /root/.docker/ ADD gradle.properties /root/.gradle/ ADD bamboo-capabilities.properties /root ENTRYPOINT ["/usr/local/bin/dumb-init", "--"] CMD /root/run.sh 

有什么办法如何解决这个问题? 是揭露docker.socket一个很好的解决scheme还是有一些更好的方法?

我已经阅读了几篇关于docker工人的文章,但是我不喜欢 – --privileged模式。

如果您需要其他信息,我会尽力提供。

谢谢。

你可以做的一件事就是在docker上运行kubernetes时在rkt上运行你的构build版本?