手摸手助你从零开始搭建etcd集群

1,762 阅读4分钟

之前我写过关于zookeeper集群、zookeeper分布式锁的实现的文章,分布式锁的实现还有基于etcd的,基于redis的,基于MySQL的等,后面会完成这一些列的知识分享。

今天从etcd集群的搭建开始切入。计划从VMware安装CentOS虚拟机开始,先创建一个模板机,后续搭建redis集群、etcd集群等各种需要创建虚拟机的时候,直接克隆模板机。

因此,我们先搞一个模板机,并对其进行一个简单的优化,比如安装基础软件vim,wget,net-tools等,还有比较重要的配置网络信息。

VMware安装CentOS7模板机

这部分比较基础,如不需要,可直接看后面的etcd集群搭建

首先,我们先安装VMware WorkStation 15.5 Pro,这个安装过程比较简单,不再赘述。

如果没有安装包的或者不想在网上搜的,文末有获取方式。

创建虚拟机

安装过程我全部截图了,安装成功结果:

安装过程截图,一目了然:

设置CPU个数及核数,这个后期可以调整:

设置内存,后续可调整:

安装虚拟机

虚拟机创建完了,下面开始引导安装:

这里最好选English,防止踩坑:

设置root密码:

安装完成,重启:

配置网络及安装基础软件

CentOS系统安装成功后,登录进去看一下:

编辑网络:

这个子网IP地址我安装的时候遇到坑了,我的物理机ip地址段是192.168,配置虚拟机子网IP为10.0.0.0,结果虚拟机内部都正常也能上网,但是用XShell就是连不上,最后重新编辑了虚拟网络VMnet8的子网IP为192.168段,成功连接。

安装基础软件,yum install -y wget vim net-tools lrzsz

网络配置:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

保存退出,关闭虚拟机即可。

etcd集群的搭建

主机规划

序号 主机名称 角色 IP地址 主机配置 系统
1 etcd-node01-master master 192.168.2.130 2C 4G CentOS7x64 1810
2 etcd-node02-slave slave 192.168.2.131 2C 4G CentOS7x64 1810
3 etcd-node03-slave slave 192.168.2.132 2C 4G CentOS7x64 1810

从模板机克隆三台虚拟机

按照主机规划,先搞出3台机器,有了前面的模板机,这里直接克隆即可。

三台主机均这样克隆创建:

etcd集群主机
etcd集群主机

设置主机hostname

为每台主机设置主机名称

192.168.2.130:
hostnamectl set-hostname etcd-node01-master

192.168.2.131:
hostnamectl set-hostname etcd-node02-slave

192.168.2.132:
hostnamectl set-hostname etcd-node03-slave

设置主机IP地址

为每台主机配置IP地址

etcd主机配置网络
etcd主机配置网络

在线安装etcd

3台虚拟机均执行如下命令安装etcd:

yum install -y etcd

安装完成,使用etcdctl -v命令验证一下:

node01:

[root@etcd-node01-master ~]# etcdctl -v
etcdctl version: 3.3.11
API version: 2
[root@etcd-node01-master ~]# rpm -qa | grep etcd
etcd-3.3.11-2.el7.centos.x86_64

node02:

[root@etcd-node02-slave ~]# etcdctl -v
etcdctl version: 3.3.11
API version: 2
[root@etcd-node02-slave ~]# rpm -qa | grep etcd
etcd-3.3.11-2.el7.centos.x86_64

node03:

[root@etcd-node03-slave ~]# etcdctl -v
etcdctl version: 3.3.11
API version: 2
[root@etcd-node03-slave ~]# rpm -qa | grep etcd
etcd-3.3.11-2.el7.centos.x86_64

etcd集群需要的环境准备好了,进行主从配置就好了,主要是配置/etc/etcd/etcd.conf文件:

配置etcd.conf
配置etcd.conf

主节点配置好了后,为方便起见,直接将该文件scp到其他两台主机:

scp /etc/etcd/etcd.conf root@192.168.2.131:/etc/etcd/

scp /etc/etcd/etcd.conf root@192.168.2.132:/etc/etcd/

然后到node02和node03上分别修改etcd.conf,修改其中的ETCD_NAME相应的IP地址

分别启动三台主机的etcd服务并验证集群:

[root@etcd-node01-master ~]# systemctl start etcd
[root@etcd-node01-master ~]# etcdctl member list
3447d51c282e7f7f: name=Slave02 peerURLs=http://192.168.2.132:2380 clientURLs=http://192.168.2.132:2379 isLeader=false
4bf6a1ee2ae8cb18: name=Slave01 peerURLs=http://192.168.2.131:2380 clientURLs=http://192.168.2.131:2379 isLeader=false
6131e520deb6a267: name=Master peerURLs=http://192.168.2.130:2380 clientURLs=http://192.168.2.130:2379 isLeader=true

集群健康状态:

[root@etcd-node01-master ~]# etcdctl cluster-health
member 3447d51c282e7f7f is healthy: got healthy result from http://192.168.2.132:2379
member 4bf6a1ee2ae8cb18 is healthy: got healthy result from http://192.168.2.131:2379
member 6131e520deb6a267 is healthy: got healthy result from http://192.168.2.130:2379
cluster is healthy

测试集群

在node01-master存储一个数据:

在两个从节点上获取数据:

好了,etcd集群搭建完了。

安装资料获取

关注公众号:行百里er,回复 etcd ,便可获取本文pdf文档,以及安装所需的软件。