etcd集群搭建(3个节点)
介绍
OS:ubuntu 16.04
搭建一个三节点的etcd集群
etcd1:192.168.122.103
etcd2:192.168.122.208
etcd3:192.168.122.1
1.下载etcd安装包
curl
wget
2.复制etcd etcdctl到/usr/local/bin
tar -zxvf etcd-v3.3.1-linux-amd64.tar.gz
cd etcd-v3.3.1-linux-amd64
cp etcd etcdctl /usr/local/bin/
3.在三个节点中创建数据目录
mkdir -p /var/lib/etcd
4.在每个节点上创建etcd的systemd unit文件/usr/lib/systemd/system/etcd.service
vim /usr/lib/systemd/system/etcd.service #如果没有system目录则新创建一个
# 文件内容如下
[Unit]
Description=etcd server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
ExecStart=/usr/local/bin/etcd --name etcd2 --initial-advertise-peer-urls http://192.168.122.208:2380 --listen-peer-urls http://192.168.122.208:2380 --listen-client-urls http://192.168.122.208:2379,http://127.0.0.1:2379 --advertise-client-urls http://192.168.122.208:2379 --initial-cluster-token etcd-cluster-1 --initial-cluster etcd3=http://192.168.122.1:2380,etcd1=http://192.168.122.103:2380,etcd2=http://192.168.122.208:2380 --initial-cluster-state new --data-dir=/var/lib/etcd
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
其他节点进行同样的操作
4.开启etcd服务
systemctl daemon-reload && systemctl enable etcd && systemctl start etcd
5.查看创建详情
system status etcd
etcdctl member list
etcdctl cluster-health
遇到的坑
我首先在一台机器上进行了测试,即一个节点的集群,测试成功,后来扩展到三台,但一直搭建失败,失败截图如下:
解决方法:参考网址
进入数据目录,将其删除,重新启动集群,成功解决,可能是第一次使用一台机器测试时已经有数据记录进去,导致后来三台搭建不成功
cd /var/lib/etcd/
rm -r member/