For developers, it may be faster to [build locally](#build-locally).
- `KUBERNETES_CONTRIB=mesos` - enables building of the contrib/mesos binaries
- `build/run.sh` - executes a command in the build container
- `build-go.sh` - builds the Go binaries for the current architecture (linux/amd64 when in a docker container)
1.[Optional] Build docker images
1.[Optional] Build docker images
The following docker images are built as part of `./cluster/kube-up.sh`, but it may make sense to build them manually
The following docker images are built as part of `./cluster/kube-up.sh`, but it may make sense to build them manually the first time because it may take a while.
the first time because it may take a while. In the future some of these may be hosted publicly, but you will always
need to at least rebuild the Kubernetes-Mesos image when using locally built binaries.
Test image includes all the dependencies required for running e2e tests.
1. Test image includes all the dependencies required for running e2e tests.
```
```
./cluster/mesos/docker/test/build.sh
./cluster/mesos/docker/test/build.sh
```
```
Kubernetes-Mesos image includes the compiled linux binaries.
In the future, this image may be available to download. It doesn't contain anything specific to the current release, except its build dependencies.
1. Kubernetes-Mesos image includes the compiled linux binaries.
```
```
./cluster/mesos/docker/km/build.sh
./cluster/mesos/docker/km/build.sh
```
```
This image needs to be built every time you recompile the server binaries.
1.[Optional] Configure Mesos resources
1.[Optional] Configure Mesos resources
By default, the mesos-slaves are configured to offer a fixed amount of resources (cpus, memory, disk, ports).
By default, the mesos-slaves are configured to offer a fixed amount of resources (cpus, memory, disk, ports).
...
@@ -297,6 +299,30 @@ ex: `./cluster/kubectl.sh get pods`
...
@@ -297,6 +299,30 @@ ex: `./cluster/kubectl.sh get pods`
docker run -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker:/var/lib/docker --rm martin/docker-cleanup-volumes
docker run -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker:/var/lib/docker --rm martin/docker-cleanup-volumes
```
```
### Build Locally
The steps above tell you how to build in a container, for minimal local dependencies. But if you have Go and Make installed you can build locally much faster:
```
KUBERNETES_CONTRIB=mesos make
```
However, if you're not on linux, you'll still need to compile the linux/amd64 server binaries:
The above two steps should be significantly faster than cross-compiling a whole new release for every supported platform (which is what `./build/release.sh` does).
Breakdown:
-`KUBERNETES_CONTRIB=mesos` - enables building of the contrib/mesos binaries
-`hack/build-go.sh` - builds the Go binaries for the current architecture (linux/amd64 when in a docker container)
-`make` - delegates to `hack/build-go.sh`
-`build/run.sh` - executes a command in the build container
-`build/release.sh` - cross compiles Kubernetes for all supported architectures and operating systems (slow)