本文在安装实践过程中参考了https://www.cnblogs.com/zhenyuyaodidiao/p/6237019.html,后面主要记录过程中遇到得问题。
1、VMware+Centos7安装:我在VMware下安装了3个Centos系统
2、通过hostnamectl修改Centos得主机名(为了方便后面配置ETCD时候辨识),我分别修改为centos_server1、centos_server2、centos_server3。
我的3台机器ip:hostname对应如下:
192.168.10.131 centos_server1
192.168.10.129 centos_server2
192.168.10.130 centos_server3
将上面的3台服务器信息添加到各个Centos的/etc/hosts中
3、yum install etcd -y安装ETCD:也可以自己下载ETCD进行安装。
4、我通过yum安装的etcd,默认的配置文件在/etc/etcd/etcd.conf,修改3个节点的配置信息:
centos_server1配置:
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="centos_server1"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://centos_server1:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://centos_server1:2379,http://centos_server1:4001"
ETCD_INITIAL_CLUSTER="centos_server1=http://centos_server1:2380,centos_server2=http://centos_server2:2380,centos_server3=http://centos_server3:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
centos_server2配置:
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.10.129:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="centos_server2"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.129:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://centos_server2:2379,http://centos_server2:4001"
ETCD_INITIAL_CLUSTER="centos_server2=http://centos_server2:2380,centos_server1=http://centos_server1:2380,centos_server3=http://centos_server3:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
centos_server3配置:
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="centos_server3"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://centos_server3:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://centos_server3:2379,http://centos_server3:4001"
ETCD_INITIAL_CLUSTER="centos_server1=http://centos_server1:2380,centos_server2=http://centos_server2:2380,centos_server3=http://centos_server3:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
5、关闭防火墙:如果防火墙不关闭,部分机器可能会存在ETCD需要用的端口打不开的情况,所以新手建议直接关闭。
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
6、各个机器上启动ETCD节点:systemctl start etcd
7、通过etcdctl member list和etcdctl cluster-health分别查看节点列表和集群状态,正常结果显示如下:
8、删除节点:
etcdctl member remove a71b5e3194c33d05
手动删除该节点的数据目录文件:rm -rf /var/lib/etcd/default.etcd
如果不删除该文件,会有信息冲突错误。
9、增加节点:
选择一个正在运行的etcd节点执行:etcdctl member add centos_server2 http://192.168.10.129:2379
启动该节点
遇到的问题:
1、dial tcp 127.0.0.1:2379: getsockopt: connection refused
解决办法:1)关闭防火墙
2)如果是ETCD集群已经建好,删除节点后重新添加,记得一定要把配置文件中的ETCD_INITIAL_CLUSTER_STATE="new"改成ETCD_INITIAL_CLUSTER_STATE="existing",否则也会出现这个问题。
2、如果删除节点,一定需要手动删除数据目录,如果将这个被删除的节点重新加入集群,需要修改ETCD_INITIAL_CLUSTER_STATE为existing