![]() Automatic merge from submit-queue Cross-build hyperkube and debian-iptables for ARM. Also add a flannel image We have to be able to build complex docker images too on `amd64` hosts. Right now we can't build Dockerfiles with `RUN` commands when building for other architectures e.g. ARM. Resin has a tutorial about this here: https://resin.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/ But it's a bit clumsy syntax. The other alternative would be running this command in a Makefile: ``` # This registers in the kernel that ARM binaries should be run by /usr/bin/qemu-{ARCH}-static docker run --rm --privileged multiarch/qemu-user-static:register --reset ``` and ``` ADD https://github.com/multiarch/qemu-user-static/releases/download/v2.5.0/x86_64_qemu-arm-static.tar.xz /usr/bin ``` Then the kernel will be able to differ ARM binaries from amd64. When it finds a ARM binary, it will invoke `/usr/bin/qemu-arm-static` first and lets `qemu` translate the ARM syscalls to amd64 ones. Some code here: https://github.com/multiarch WDYT is the best approach? If registering `binfmt_misc` in the kernels of the machines is OK, then I think we should go with that. Otherwise, we'll have to wait for resin's patch to be merged into mainline qemu before we may use the code I have here now. @fgrzadkowski @david-mcmahon @brendandburns @zmerlynn @ixdy @ihmccreery @thockin |
||
---|---|---|
.. | ||
Dockerfile | ||
etcd.json | ||
kube-proxy.json | ||
Makefile | ||
master-multi.json | ||
master.json | ||
README.md | ||
setup-files.sh | ||
teardown.sh | ||
turnup.sh |
hyperkube
hyperkube
is an all-in-one binary for the Kubernetes server components
Also, it's very easy to run this hyperkube
setup dockerized.
See http://kubernetes.io/docs/getting-started-guides/docker/ for up-to-date commands.
hyperkube
is built for multiple architectures and pushed on every release.
How to release by hand
# First, build the
$ build/run.sh hack/build-cross.sh
# Build for linux/amd64 (default)
$ make push VERSION={target_version} ARCH=amd64
# ---> gcr.io/google_containers/hyperkube-amd64:VERSION
# ---> gcr.io/google_containers/hyperkube:VERSION (image with backwards-compatible naming)
$ make push VERSION={target_version} ARCH=arm
# ---> gcr.io/google_containers/hyperkube-arm:VERSION
If you don't want to push the images, run make
or make build
instead