Skip to content

Commit c07f4a8

Browse files
committed
Add a v2 docker-compose.yml for etcd cluster
1 parent 3c9d0ee commit c07f4a8

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,11 @@
11
# etcd-dev-tools
22
This repository has tools to make etcd development and debugging easy.
3+
4+
### Spin a etcd v2 cluster
5+
6+
1. Install docker-compose and clone the repo.
7+
2. `cd etcd-dev-tools/etcd-v2`
8+
3. Bring up the cluster by `docker-compose up -d`
9+
4. Access the cluster:
10+
1. Get client shell: `docker exec -it etcd-v2_etcd-client_1 sh`
11+
2. Run etcdctl commands in the container: `etcdctl member list`

etcd-v2/docker-compose.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
version: '2'
2+
services:
3+
4+
etcd-1:
5+
image: gcr.io/etcd-development/etcd:v3.3.12
6+
restart: always
7+
ports:
8+
- 2379
9+
- 2380
10+
volumes:
11+
#This will makes sure that etcd-1 data directories are on the host for debugging
12+
- ./data1/:/var/lib/etcd/
13+
- ./certs/:/etc/ssl/certs/
14+
networks:
15+
etcd_dev:
16+
ipv4_address: 172.30.66.10
17+
environment:
18+
ETCD_NAME: etcd-1
19+
ETCDCTL_API: 3
20+
ETCD_DEBUG: 1
21+
ETCD_DATA_DIR: /var/lib/etcd
22+
ETCD_INITIAL_ADVERTISE_PEER_URLS: http://etcd-1:2380
23+
ETCD_INITIAL_CLUSTER: etcd-1=http://etcd-1:2380,etcd-2=http://etcd-2:2380,etcd-3=http://etcd-3:2380
24+
ETCD_INITIAL_CLUSTER_STATE: new
25+
ETCD_INITIAL_CLUSTER_TOKEN: etcd-ftw
26+
ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379
27+
ETCD_LISTEN_PEER_URLS: http://0.0.0.0:2380
28+
ETCD_ADVERTISE_CLIENT_URLS: http://etcd-1:2379,http://127.0.0.1:2379
29+
etcd-2:
30+
image: gcr.io/etcd-development/etcd:v3.3.12
31+
restart: always
32+
ports:
33+
- 2379
34+
- 2380
35+
volumes:
36+
- ./certs/:/etc/ssl/certs/
37+
networks:
38+
etcd_dev:
39+
ipv4_address: 172.30.66.11
40+
environment:
41+
ETCD_NAME: etcd-2
42+
ETCDCTL_API: 3
43+
ETCD_DEBUG: 1
44+
ETCD_DATA_DIR: /var/lib/etcd
45+
ETCD_INITIAL_ADVERTISE_PEER_URLS: http://etcd-2:2380
46+
ETCD_INITIAL_CLUSTER: etcd-1=http://etcd-1:2380,etcd-2=http://etcd-2:2380,etcd-3=http://etcd-3:2380
47+
ETCD_INITIAL_CLUSTER_STATE: new
48+
ETCD_INITIAL_CLUSTER_TOKEN: etcd-ftw
49+
ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379
50+
ETCD_LISTEN_PEER_URLS: http://0.0.0.0:2380
51+
ETCD_ADVERTISE_CLIENT_URLS: http://etcd-2:2379,http://127.0.0.1:2379
52+
etcd-3:
53+
image: gcr.io/etcd-development/etcd:v3.3.12
54+
restart: always
55+
ports:
56+
- 2379
57+
- 2380
58+
volumes:
59+
- ./certs/:/etc/ssl/certs/
60+
networks:
61+
etcd_dev:
62+
ipv4_address: 172.30.66.12
63+
environment:
64+
ETCD_NAME: etcd-3
65+
ETCDCTL_API: 3
66+
ETCD_DEBUG: 1
67+
ETCD_DATA_DIR: /var/lib/etcd
68+
ETCD_INITIAL_ADVERTISE_PEER_URLS: http://etcd-3:2380
69+
ETCD_INITIAL_CLUSTER: etcd-1=http://etcd-1:2380,etcd-2=http://etcd-2:2380,etcd-3=http://etcd-3:2380
70+
ETCD_INITIAL_CLUSTER_STATE: existing
71+
ETCD_INITIAL_CLUSTER_TOKEN: etcd-ftw
72+
ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379
73+
ETCD_LISTEN_PEER_URLS: http://0.0.0.0:2380
74+
ETCD_ADVERTISE_CLIENT_URLS: http://etcd-3:2379,http://127.0.0.1:2379
75+
76+
etcd-client:
77+
image: gcr.io/etcd-development/etcd:v3.3.12
78+
restart: always
79+
volumes:
80+
- ./certs/:/etc/ssh/certs/
81+
networks:
82+
etcd_dev:
83+
ipv4_address: 172.30.66.13
84+
environment:
85+
ETCDCTL_API: 2
86+
ETCDCTL_ENDPOINTS: http://etcd-1:2379,http://etcd-2:2379,http://etcd-3:2379
87+
88+
networks:
89+
etcd_dev:
90+
driver: bridge
91+
driver_opts:
92+
com.docker.network.enable_ipv6: "false"
93+
ipam:
94+
driver: default
95+
config:
96+
- subnet: 172.30.66.0/24
97+
gateway: 172.30.66.1
98+

0 commit comments

Comments
 (0)