# Etcd集群
# 关键字说明
- 绿色字体代表已完成
- 红色字体代表待完成
# 实验明细
- 配置
- 运行
- 集成
# docker-compose.yaml
# 可参考 https://hub.docker.com/r/bitnami/etcd
version: '3'
networks:
etcd-cluster-1:
driver: bridge
services:
etcd1:
image: registry.cn-shanghai.aliyuncs.com/odboy/ops:etcd-3.5.15
container_name: etcd1
restart: unless-stopped
volumes:
- "./etcd1/data:/bitnami/etcd/data"
environment:
- ALLOW_NONE_AUTHENTICATION=yes #示例中我们不设置密码
- ETCD_NAME=etcd1 #节点自己的名字
- ETCD_ADVERTISE_CLIENT_URLS=http://etcd1:2379 #告知集群自己的客户端地址
- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 #设置监听客户端通讯的URL列表
- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://etcd1:2380 #告知集群自己集群通讯地址
- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 #用于监听伙伴通讯的URL列表
- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster #etcd 集群的初始化集群记号
- ETCD_INITIAL_CLUSTER=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380 #集群成员
- ETCD_INITIAL_CLUSTER_STATE=new #初始化集群状态, 再次启动改为existing
ports:
- "2379"
- "2380"
networks:
- etcd-cluster-1
etcd2:
image: registry.cn-shanghai.aliyuncs.com/odboy/ops:etcd-3.5.15
container_name: etcd2
restart: unless-stopped
volumes:
- "./etcd2/data:/bitnami/etcd/data"
environment:
- ALLOW_NONE_AUTHENTICATION=yes #示例中我们不设置密码
- ETCD_NAME=etcd2 #节点自己的名字
- ETCD_ADVERTISE_CLIENT_URLS=http://etcd2:2379 #告知集群自己的客户端地址
- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 #设置监听客户端通讯的URL列表
- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://etcd2:2380 #告知集群自己集群通讯地址
- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 #用于监听伙伴通讯的URL列表
- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster #etcd 集群的初始化集群记号
- ETCD_INITIAL_CLUSTER=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380 #集群成员
- ETCD_INITIAL_CLUSTER_STATE=new #初始化集群状态, 再次启动改为existing
ports:
- "2379"
- "2380"
networks:
- etcd-cluster-1
etcd3:
image: registry.cn-shanghai.aliyuncs.com/odboy/ops:etcd-3.5.15
container_name: etcd3
restart: unless-stopped
volumes:
- "./etcd3/data:/bitnami/etcd/data"
environment:
- ALLOW_NONE_AUTHENTICATION=yes #示例中我们不设置密码
- ETCD_NAME=etcd3 #节点自己的名字
- ETCD_ADVERTISE_CLIENT_URLS=http://etcd3:2379 #告知集群自己的客户端地址
- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 #设置监听客户端通讯的URL列表
- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://etcd3:2380 #告知集群自己集群通讯地址
- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 #用于监听伙伴通讯的URL列表
- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster #etcd 集群的初始化集群记号
- ETCD_INITIAL_CLUSTER=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380 #集群成员
- ETCD_INITIAL_CLUSTER_STATE=new #初始化集群状态, 再次启动改为existing
ports:
- "2379"
- "2380"
networks:
- etcd-cluster-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# 进入容器并测试
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d003e897f512 registry.cn-shanghai.aliyuncs.com/odboy/ops:etcd-3.5.15 "/opt/bitnami/script…" 3 minutes ago Up 3 minutes 0.0.0.0:51650->2379/tcp, 0.0.0.0:51651->2380/tcp etcd2
757c5f377610 registry.cn-shanghai.aliyuncs.com/odboy/ops:etcd-3.5.15 "/opt/bitnami/script…" 3 minutes ago Up 3 minutes 0.0.0.0:51648->2379/tcp, 0.0.0.0:51649->2380/tcp etcd3
ccb218db770a registry.cn-shanghai.aliyuncs.com/odboy/ops:etcd-3.5.15 "/opt/bitnami/script…" 3 minutes ago Up 3 minutes 0.0.0.0:51652->2379/tcp, 0.0.0.0:51653->2380/tcp etcd1
$ docker exec -it 8ea859ca15d9 bash
$ etcdctl --endpoints=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379 --write-out=table endpoint status
+-------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+-------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| http://etcd1:2379 | ade526d28b1f92f7 | 3.5.15 | 20 kB | false | false | 6 | 15 | 15 | |
| http://etcd2:2379 | d282ac2ce600c1ce | 3.5.15 | 20 kB | false | false | 6 | 15 | 15 | |
| http://etcd3:2379 | bd388e7810915853 | 3.5.15 | 20 kB | true | false | 6 | 15 | 15 | |
+-------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 环境变量
# 只读变量
← Etcd单机 Sentinel单机 →