前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手摸手助你从零开始搭建etcd集群

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

作者头像
行百里er
发布2020-12-02 15:33:52
7880
发布2020-12-02 15:33:52
举报
文章被收录于专栏:JavaJourneyJavaJourney

之前我整过关于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台机器,有了前面的模板机,这里直接克隆即可。

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

设置主机hostname

为每台主机设置主机名称

代码语言:javascript
复制
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

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

yum install -y etcd

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

代码语言:javascript
复制
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文件:

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

代码语言:javascript
复制
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服务并验证集群:

代码语言:javascript
复制
[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

集群健康状态:

代码语言:javascript
复制
[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文档,以及安装所需的软件。

往期推荐

分布式高可用的ZooKeeper集群搭建与基本操作

ZooKeeper原理-paxos算法,ZAB协议

用ZooKeeper实现分布式配置中心

用ZooKeeper实现分布式锁

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 行百里er 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • VMware安装CentOS7模板机
    • 创建虚拟机
      • 安装虚拟机
        • 配置网络及安装基础软件
        • etcd集群的搭建
          • 主机规划
            • 从模板机克隆三台虚拟机
              • 设置主机hostname
                • 设置主机IP地址
                  • 在线安装etcd
                    • 测试集群
                      • 安装资料获取
                      相关产品与服务
                      云数据库 MySQL
                      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档