etcd install

前置准备

服务器三台,分别是:
172.16.6.100
172.16.6.101
172.16.6.102

启动私有仓库

docker run -d -p 5000:5000 --restart=always  -v /opt/registry:/tmp/registry registry:2.6.1

Cluster Store模式

docker以Cluster Store模式启动,初始化配置文件脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/sh
ETCD=etcd://172.16.6.100:2379
DIR=/etc/systemd/system/docker.service.d/
mkdir $DIR
echo "[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock \
--cluster-store $ETCD \
--registry-mirror=http://172.16.6.100:5000 \
--insecure-registry=http://172.16.6.100:5000 > $DIR"override.conf"
systemctl daemon-reload
service docker stop
service docker start

启动etcd集群

节点1:172.16.6.100
启动脚本:

1
2
3
4
5
6
7
docker run --net=host -d --restart=always --name etcd-100 -v /opt/etcd-100:/data elcolio/etcd:2.0.10 -name etcd-100 \
-advertise-client-urls http://172.16.6.100:2379 \
-listen-client-urls http://0.0.0.0:2379 \
-initial-advertise-peer-urls http://172.16.6.100:2380 \
-listen-peer-urls http://0.0.0.0:2380 \
-initial-cluster etcd-100=http://172.16.6.100:2380,etcd-101=http://172.16.6.101:2380,etcd-102=http://172.16.6.102:2380 \
-initial-cluster-state new

节点2:
启动脚本:

1
2
3
4
5
6
7
docker run --net=host -d --restart=always --name etcd-101 -v /opt/etcd-101:/data elcolio/etcd:2.0.10 -name etcd-101 \
-advertise-client-urls http://172.16.6.101:2379 \
-listen-client-urls http://0.0.0.0:2379 \
-initial-advertise-peer-urls http://172.16.6.101:2380 \
-listen-peer-urls http://0.0.0.0:2380 \
-initial-cluster etcd-100=http://172.16.6.100:2380,etcd-101=http://172.16.6.101:2380,etcd-102=http://172.16.6.102:2380 \
-initial-cluster-state new

节点3:
启动脚本:

1
2
3
4
5
6
7
docker run --net=host -d --restart=always --name etcd-102 -v /opt/etcd-102:/data elcolio/etcd:2.0.10 -name etcd-102 \
-advertise-client-urls http://172.16.6.102:2379 \
-listen-client-urls http://0.0.0.0:2379 \
-initial-advertise-peer-urls http://172.16.6.102:2380 \
-listen-peer-urls http://0.0.0.0:2380 \
-initial-cluster etcd-100=http://172.16.6.100:2380,etcd-101=http://172.16.6.101:2380,etcd-102=http://172.16.6.102:2380 \
-initial-cluster-state new

说明

–net=host为默认宿主机的网络,对consul开放即可,consul暂定也是用默认宿主机的地址,不加入calico网络。

集群检测

1
2
etcdctl member list
etcdctl cluster-health

具体命令说明查询 etcdctl –help