github官方
官方文档
配置文件yaml
conf1.yaml
# 结点名称
name: "s1"
# 数据存储目录
data-dir: "/etcd-data"
# 集群提供给外部客户端访问的url, 即外部客户端必须通过指定
listen-client-urls: "http://0.0.0.0:2379"
# 想客户端发布的服务端点
advertise-client-urls: "http://42.193.152.252:2379"
# 集群成员之间通信使用的url
listen-peer-urls: "http://0.0.0.0:2380"
# 集群配置
initial-advertise-peer-urls: "http://42.193.152.252:2380"
# 集群成员配置
initial-cluster: "s1=http://42.193.152.252:2380,s2=http://42.193.152.252:12380"
# 引导期间etcd集群的初始集群令牌
initial-cluster-token: "tkn"
# 初始化集群状态(new:新增 或者 existing: 加入已存在)
initial-cluster-state: "new"
# 日志级别
log-level: "info"
# 压缩
logger: "zap"
log-outputs:
- "stderr"
conf2.yaml
# 结点名称
name: "s2"
# 数据存储目录
data-dir: "/etcd-data"
# 集群提供给外部客户端访问的url, 即外部客户端必须通过指定
listen-client-urls: "http://0.0.0.0:12379"
# 想客户端发布的服务端点
advertise-client-urls: "http://42.193.152.252:12379"
# 集群成员之间通信使用的url
listen-peer-urls: "http://0.0.0.0:12380"
# 集群配置
initial-advertise-peer-urls: "http://42.193.152.252:12380"
# 集群成员配置
initial-cluster: "s1=http://42.193.152.252:2380,s2=http://42.193.152.252:12380"
# 引导期间etcd集群的初始集群令牌
initial-cluster-token: "tkn"
# 初始化集群状态(new:新增 或者 existing: 加入已存在)
initial-cluster-state: "new"
# 日志级别
log-level: "info"
# 压缩
logger: "zap"
log-outputs:
- "stderr"
conf3.yaml
# 结点名称
name: "s3"
# 数据存储目录
data-dir: "/etcd-data"
# 集群提供给外部客户端访问的url, 即外部客户端必须通过指定
listen-client-urls: "http://0.0.0.0:22379"
# 想客户端发布的服务端点
advertise-client-urls: "http://42.193.152.252:22379"
# 集群成员之间通信使用的url
listen-peer-urls: "http://0.0.0.0:22380"
# 集群配置
initial-advertise-peer-urls: "http://42.193.152.252:22380"
# 集群成员配置
initial-cluster: "s1=http://42.193.152.252:2380,s2=http://42.193.152.252:12380,s3=http://42.193.152.252:2.22380"
# 引导期间etcd集群的初始集群令牌
initial-cluster-token: "tkn"
# 初始化集群状态(new:新增 或者 existing: 加入已存在)
initial-cluster-state: "existing"
# 日志级别
log-level: "info"
# 压缩
logger: "zap"
log-outputs:
- "stderr"
运行docker容器s1
docker run -d -p 2379:2379 -p 2380:2380 -v /root/etcd/s1-data:/etcd-data -v /root/etcd/conf:/etcd-conf --name etcd-s1 quay.io/coreos/etcd:v3.5.9 /usr/local/bin/etcd --config-file=/etcd-conf/conf1.yaml