Docker build inside kubernetes pod fails with "could not find bridge docker0" -
i moved our build agents kubernetes / container engine. used run on container vm (version container-vm-v20160321) , mount docker.sock docker container can run docker build inside container.
this used following manifest:
apiversion: v1 kind: pod metadata: name: gocd-agent spec: containers: - name: gocd-agent image: travix/gocd-agent:16.8.0 imagepullpolicy: volumemounts: - name: ssh-keys mountpath: /var/go/.ssh readonly: true - name: gcloud-keys mountpath: /var/go/.gcloud readonly: true - name: docker-sock mountpath: /var/run/docker.sock - name: docker-bin mountpath: /usr/bin/docker env: - name: "go_server_url" value: "https://server:8154/go" - name: "agent_key" value: "***" - name: "agent_resources" value: "docker" - name: "docker_gid_on_host" value: "107" restartpolicy: dnspolicy: default volumes: - name: ssh-keys gcepersistentdisk: pdname: sh-keys fstype: ext4 readonly: true - name: gcloud-keys gcepersistentdisk: pdname: gcloud-keys fstype: ext4 readonly: true - name: docker-sock hostpath: path: /var/run/docker.sock - name: docker-bin hostpath: path: /usr/bin/docker - name: varlog hostpath: path: /var/log - name: varlibdockercontainers hostpath: path: /var/lib/docker/containers
now after moving full-blown container engine cluster - version 1.3.5 - following manifest fails.
apiversion: extensions/v1beta1 kind: deployment metadata: name: gocd-agent spec: replicas: 2 strategy: type: recreate revisionhistorylimit: 1 selector: matchlabels: app: gocd-agent template: metadata: labels: app: gocd-agent spec: containers: - name: gocd-agent image: travix/gocd-agent:16.8.0 imagepullpolicy: securitycontext: privileged: true volumemounts: - name: ssh-keys mountpath: /k8s-ssh-secret - name: gcloud-keys mountpath: /var/go/.gcloud - name: docker-sock mountpath: /var/run/docker.sock - name: docker-bin mountpath: /usr/bin/docker env: - name: "go_server_url" value: "https://server:8154/go" - name: "agent_key" value: "***" - name: "agent_resources" value: "docker" - name: "docker_gid_on_host" value: "107" volumes: - name: ssh-keys secret: secretname: ssh-keys - name: gcloud-keys secret: secretname: gcloud-keys - name: docker-sock hostpath: path: /var/run/docker.sock - name: docker-bin hostpath: path: /usr/bin/docker - name: varlog hostpath: path: /var/log - name: varlibdockercontainers hostpath: path: /var/lib/docker/containers
it seems start building fine, fails no such interface error:
executing "docker build --force-rm=true --no-cache=true --file=target/docker/dockerfile --tag=****:1.0.258 ." sending build context docker daemon 557.1 kb ... sending build context docker daemon 78.04 mb step 1 : travix/base-debian-jre8 ---> a130b5e1b4d4 step 2 : add ***-1.0.258.jar ***.jar ---> 8d53e68e93a0 removing intermediate container d1a758c9baeb step 3 : add target/newrelic newrelic ---> 9dbbb1c1db58 removing intermediate container 461e66978c53 step 4 : run bash -c "touch /***.jar" ---> running in 6a28f48c9fd1 removing intermediate container 6a28f48c9fd1 failed create endpoint stupefied_shockley on network bridge: adding interface veth095b905 bridge docker0 failed: not find bridge docker0: route ip+net: no such network interface
is impossible run docker build inside pod due kubernetes networking or need configure pod differently? or bug in particular docker version on host?
client: version: 1.11.2 api version: 1.23 go version: go1.5.4 git commit: b9f10c9 built: wed jun 1 21:20:08 2016 os/arch: linux/amd64 server: version: 1.11.2 api version: 1.23 go version: go1.5.4 git commit: b9f10c9 built: wed jun 1 21:20:08 2016 os/arch: linux/amd64
the bridge seems exist on host:
$ sudo brctl show bridge name bridge id stp enabled interfaces cbr0 8000.063c847a631e no veth0a58740b veth1f558898 veth8797ea93 vethb11a7490 vethc576cc01 docker0 8000.02428db6a46e no
and docker info completeness
$ sudo docker info containers: 15 running: 14 paused: 0 stopped: 1 images: 67 server version: 1.11.2 storage driver: aufs root dir: /var/lib/docker/aufs backing filesystem: extfs dirs: 148 dirperm1 supported: true logging driver: json-file cgroup driver: cgroupfs plugins: volume: local network: bridge null host kernel version: 3.16.0-4-amd64 operating system: debian gnu/linux 7 (wheezy) ostype: linux architecture: x86_64 cpus: 4 total memory: 25.57 gib name: gke-tooling-default-pool-1fa283a6-8ufa id: jbq2:q3ar:tfjg:iltx:kmhv:m67a:nyem:nk4g:r43j:k5ps:26hy:q57s docker root dir: /var/lib/docker debug mode (client): false debug mode (server): false registry: https://index.docker.io/v1/ warning: no swap limit support warning: no kernel memory limit support warning: no cpu cfs quota support warning: no cpu cfs period support
and
$ uname -a linux gke-tooling-default-pool-1fa283a6-8ufa 3.16.0-4-amd64 #1 smp debian 3.16.7-ckt25-2 (2016-04-08) x86_64 gnu/linux
Comments
Post a Comment