This directory contains scripts/files to bootstrap a etcd
cluster.
In the local, hyperkit based, setup, we use a etcd
running in a
Docker for Mac container to bootstrap the cluster. For a cloud based demo, we'd use https://discovery.etcd.io
. The host/DfM side is setup with dfm-setup.sh.
The moby etcd
package is build with build-pkg.sh. It take the official etcd
container and adds a script to start etcd
.
Simple single node cluster
- Edit
./dfm-setup.sh
and setNUMPEERS
to1
- Start the etcd bootstrap container in on window:
./dfm-setup.sh
- In another window build/run the moby image:
./build-pkg.sh
moby build etcd
moby run etcd
InfraKit cluster setup
This should create a HyperKit based, InfraKit managed etcd
cluster with 5 etcd
instances.
Infrakit setup
You need the infrakit binaries for this. I normally compile from source using make build-in-container
. The below was tried with commit cb420e3e50ea60afe58538b1d3cab1cb14059433
.
- Make sure you start from scratch
rm -rf ~/.infrakit
- Start the infrakit plugins, each in it's own window from the root of the infrakit source tree:
./build/infrakit-group-default
./build/infrakit-flavor-vanilla
- Start the hyperkit instance plugin from this directory:
../../../bin/infrakit-instance-hyperkit
etcd setup
- Start the bootstrap
etcd
:
./dfm-setup.sh
- Commit the infrakit config:
~/src/docker/infrakit/build/infrakit group commit infrakit.json
To check if everything is fine, note down the IP address from one of the nodes and then:
docker run --rm -t quay.io/coreos/etcd:v3.1.5 etcdctl --endpoints http://192.168.65.24:2379 member list