mirror of
https://github.com/yeasy/docker_practice.git
synced 2025-08-09 08:31:51 +00:00
Update etcd to 3.x #275
This commit is contained in:
129
etcd/cluster.md
Normal file
129
etcd/cluster.md
Normal file
@@ -0,0 +1,129 @@
|
||||
## etcd 集群
|
||||
|
||||
下面我们使用 [Docker Compose](../compose/) 模拟启动一个 3 节点的 etcd 集群。
|
||||
|
||||
编辑 `docker-compose.yml` 文件
|
||||
|
||||
```yaml
|
||||
version: "3"
|
||||
services:
|
||||
|
||||
node1:
|
||||
image: quay.io/coreos/etcd
|
||||
volumes:
|
||||
- node1-data:/etcd-data
|
||||
expose:
|
||||
- 2379
|
||||
- 2380
|
||||
networks:
|
||||
cluster_net:
|
||||
ipv4_address: 172.16.238.100
|
||||
environment:
|
||||
- ETCDCTL_API=3
|
||||
command:
|
||||
- /usr/local/bin/etcd
|
||||
- --data-dir=/etcd-data
|
||||
- --name
|
||||
- node1
|
||||
- --initial-advertise-peer-urls
|
||||
- http://172.16.238.100:2380
|
||||
- --listen-peer-urls
|
||||
- http://0.0.0.0:2380
|
||||
- --advertise-client-urls
|
||||
- http://172.16.238.100:2379
|
||||
- --listen-client-urls
|
||||
- http://0.0.0.0:2379
|
||||
- --initial-cluster
|
||||
- node1=http://172.16.238.100:2380,node2=http://172.16.238.101:2380,node3=http://172.16.238.102:2380
|
||||
- --initial-cluster-state
|
||||
- new
|
||||
- --initial-cluster-token
|
||||
- docker-etcd
|
||||
|
||||
node2:
|
||||
image: quay.io/coreos/etcd
|
||||
volumes:
|
||||
- node2-data:/etcd-data
|
||||
networks:
|
||||
cluster_net:
|
||||
ipv4_address: 172.16.238.101
|
||||
environment:
|
||||
- ETCDCTL_API=3
|
||||
expose:
|
||||
- 2379
|
||||
- 2380
|
||||
command:
|
||||
- /usr/local/bin/etcd
|
||||
- --data-dir=/etcd-data
|
||||
- --name
|
||||
- node2
|
||||
- --initial-advertise-peer-urls
|
||||
- http://172.16.238.101:2380
|
||||
- --listen-peer-urls
|
||||
- http://0.0.0.0:2380
|
||||
- --advertise-client-urls
|
||||
- http://172.16.238.101:2379
|
||||
- --listen-client-urls
|
||||
- http://0.0.0.0:2379
|
||||
- --initial-cluster
|
||||
- node1=http://172.16.238.100:2380,node2=http://172.16.238.101:2380,node3=http://172.16.238.102:2380
|
||||
- --initial-cluster-state
|
||||
- new
|
||||
- --initial-cluster-token
|
||||
- docker-etcd
|
||||
|
||||
node3:
|
||||
image: quay.io/coreos/etcd
|
||||
volumes:
|
||||
- node3-data:/etcd-data
|
||||
networks:
|
||||
cluster_net:
|
||||
ipv4_address: 172.16.238.102
|
||||
environment:
|
||||
- ETCDCTL_API=3
|
||||
expose:
|
||||
- 2379
|
||||
- 2380
|
||||
command:
|
||||
- /usr/local/bin/etcd
|
||||
- --data-dir=/etcd-data
|
||||
- --name
|
||||
- node3
|
||||
- --initial-advertise-peer-urls
|
||||
- http://172.16.238.102:2380
|
||||
- --listen-peer-urls
|
||||
- http://0.0.0.0:2380
|
||||
- --advertise-client-urls
|
||||
- http://172.16.238.102:2379
|
||||
- --listen-client-urls
|
||||
- http://0.0.0.0:2379
|
||||
- --initial-cluster
|
||||
- node1=http://172.16.238.100:2380,node2=http://172.16.238.101:2380,node3=http://172.16.238.102:2380
|
||||
- --initial-cluster-state
|
||||
- new
|
||||
- --initial-cluster-token
|
||||
- docker-etcd
|
||||
|
||||
volumes:
|
||||
node1-data:
|
||||
node2-data:
|
||||
node3-data:
|
||||
|
||||
networks:
|
||||
cluster_net:
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
||||
config:
|
||||
-
|
||||
subnet: 172.16.238.0/24
|
||||
```
|
||||
|
||||
使用 `docker exec` 命令登录到任一节点测试 etcd 集群。
|
||||
|
||||
```bash
|
||||
/ # etcdctl member list
|
||||
daf3fd52e3583ff, started, node3, http://172.16.238.102:2380, http://172.16.238.102:2379
|
||||
422a74f03b622fef, started, node1, http://172.16.238.100:2380, http://172.16.238.100:2379
|
||||
ed635d2a2dbef43d, started, node2, http://172.16.238.101:2380, http://172.16.238.101:2379
|
||||
```
|
Reference in New Issue
Block a user