# Etcd集群

作者:Odboy (opens new window)

本站地址:https://blog.odboy.cn (opens new window)

# 关键字说明

  • 绿色字体代表已完成
  • 红色字体代表待完成

# 实验明细

  • 配置
  • 运行
  • 集成

# 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

# 进入容器并测试

$ 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

# 环境变量

pic

# 只读变量

pic

最近更新: 2024-10-11
2017 - 武林秘籍   |