微服务自动化 etcd集群搭建

这篇具有很好参考价值的文章主要介绍了微服务自动化 etcd集群搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 静态部署(前提)

它需要开多个虚拟机 那我们就找到你使用的那个虚拟机复制(强调两个主机都已经安装好了etcd服务并且能够正常运行)

微服务自动化 etcd集群搭建,微服务,自动化,etcd

不是复制就可以使用 我们需要把里面的不是vmdk和vmx的文件删了

 微服务自动化 etcd集群搭建,微服务,自动化,etcd 

然后再回到我们的虚拟机,鼠标右键选择打开

微服务自动化 etcd集群搭建,微服务,自动化,etcd 

然后启动虚拟机它会提示我们是否已知虚拟机被复制选择已知复制该虚拟机就行 (选第一个就会默认IP一样的)

进来输入ifconfig查看IP    再到外部进行连接

连接之后我们在两个里面输入 systemctl status etcd 的状态

etcd构建自身高可用集群主要有三种形式:

静态发现: 

预先已知etcd集群中有哪些节点,在启动时通过--initial-cluster参数直接指定好etcd的各个节点地址

etcd动态发现:

静态配置前提是在搭建集群之前已经提前知道各节点的信息,而实际应用中可能存在预先并不知道各节点ip的情况, 这时可通过已经搭建的etcd来辅助搭建新的etcd集群。通过已有的etcd集群作为数据交互点,然后在扩展新的集群时 实现通过已有集群进行服务发现的机制。比如官方提供的:discovery.etcd.io

DNS动态发现:  通过DNS查询方式获取其他节点地址信息

 文章来源地址https://www.toymoban.com/news/detail-797324.html

集群搭建

1.安装服务(参考)

2.先删除/var/lib/etcd目录

cd /var/lib/etcd && rm -rf *

修改 vim /etc/etcd/etcd.conf 文件 (注意:记得里面IP要改成自己的哦

#[Member]
#1.节点名称,必须唯一
ETCD_NAME="etcd01"
#2.设置数据保存的目录
ETCD_DATA_DIR="/var/lib/etcd"
#3.用于监听其他etcd member的url
ETCD_LISTEN_PEER_URLS="http://192.168.27.128:2380"
#4.该节点对外提供服务的地址
ETCD_LISTEN_CLIENT_URLS="http://192.168.27.129:2379,http://127.0.0.1:2379"

#[Clustering]
#1.对外公告的该节点客户端监听地址
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.27.129:2379"
#2.该节点成员对等URL地址,且会通告集群的其余成员节点
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.27.129:2380"
#3.集群中所有节点的信息
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.27.128:2380,etcd02=http://192.168.27.129:2380"
#4.创建集群的token,这个值每个集群保持唯一
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
#5.初始集群状态,新建集群的时候,这个值为new;
ETCD_INITIAL_CLUSTER_STATE="new"
#6.flannel操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API
#为了兼容flannel,将默认开启v2版本,故配置文件中设置 
ETCD_ENABLE_V2="true"

 打开两个主机的防火墙端口:

步骤一:firewall-cmd --zone=public --add-port=2379/tcp --permanent

步骤二:firewall-cmd --zone=public --add-port=2380/tcp --permanent

步骤三:firewall-cmd --reload

步骤四:firewall-cmd --list-port

 我们在启动一下: systemctl start etcd 

 然后我们在第二个主机里面输入:systemctl stop etcd 

先删除/var/lib/etcd目录

cd /var/lib/etcd && rm -rf *

 编辑 vim /etc/etcd/etcd.conf   然后把里面的128替换成129

#[Member]
#1.节点名称,必须唯一
ETCD_NAME="etcd02(第二个主机)"
#2.设置数据保存的目录
ETCD_DATA_DIR="/var/lib/etcd(自己的目录)"
#3.用于监听其他etcd member的url
ETCD_LISTEN_PEER_URLS="http://192.168.27.128:2380"
#4.该节点对外提供服务的地址
ETCD_LISTEN_CLIENT_URLS="http://192.168.27.129:2379,http://127.0.0.1:2379"

#[Clustering]
#1.对外公告的该节点客户端监听地址
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.27.129:2379"
#2.该节点成员对等URL地址,且会通告集群的其余成员节点
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.27.129:2380"
#3.集群中所有节点的信息
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.27.128:2380,etcd02=http://192.168.27.129:2380"
#4.创建集群的token,这个值每个集群保持唯一
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
#5.初始集群状态,新建集群的时候,这个值为new;
ETCD_INITIAL_CLUSTER_STATE="new"
#6.flannel操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API
#为了兼容flannel,将默认开启v2版本,故配置文件中设置 
ETCD_ENABLE_V2="true"

搞完之后我们分别在两个主机里面输入 systemctl start etcd 

查看集群:etcd member list     

拼上 -w table 它就是以表格的形式

然后试一下在第一个主机里面输入 etcdctl put  /spring/name root 

在第二个主机里面输入 etcdctl  get  /spring/name

以上就是虚拟机的版本


接下来就是docker版本

镜像

docker pull quay.io/coreos/etcd:v3.3.1

创建一个网关

docker network create  --subnet 172.19.0.0/16 ots

创建第一个主机

docker run -d \
-p 2379:2379 -p 2380:2380 \
--name node1 --network=ots \
--ip 172.19.0.110 \
quay.io/coreos/etcd:v3.3.1 \
etcd \
-name node1 \
-advertise-client-urls http://172.19.0.110:2379 \
-initial-advertise-peer-urls http://172.19.0.110:2380 \
-listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 \
-initial-cluster-token etcd-cluster \
-initial-cluster "node1=http://172.19.0.110:2380,node2=http://172.19.0.120:2380,node3=http://172.19.0.130:2380" \
-initial-cluster-state new

创建第二个主机

docker run -d \
--name node2 --network=ots \
--ip 172.19.0.120 \
quay.io/coreos/etcd:v3.3.1 \
etcd \
-name node2 \
-advertise-client-urls http://172.19.0.120:2379 \
-initial-advertise-peer-urls http://172.19.0.120:2380 \
-listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 \
-initial-cluster-token etcd-cluster \
-initial-cluster "node1=http://172.19.0.110:2380,node2=http://172.19.0.120:2380,node3=http://172.19.0.130:2380" \
-initial-cluster-state new

创建第三个主机

docker run -d \
-p 2579:2379 -p 2580:2380 \
--name node3 --network=ots \
--ip 172.19.0.130 \
quay.io/coreos/etcd:v3.3.1 \
etcd \
-name node3 \
-advertise-client-urls http://172.19.0.130:2379 \
-initial-advertise-peer-urls http://172.19.0.130:2380 \
-listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 \
-initial-cluster-token etcd-cluster \
-initial-cluster "node1=http://172.19.0.110:2380,node2=http://172.19.0.120:2380,node3=http://172.19.0.130:2380" \
-initial-cluster-state new

创建之后我们在查看一下主机:docker ps

 然后我们重新启动一下:docker restart {node1,node2,node3}

进入第一个主机:docker exec -it node1 sh 新开一个

进入之后输入etcdctl set /spring/name root

进入第一个主机:docker exec -it node2 sh 新开一个

 进入之后输入:etcdctl get /spring/name

进入第一个主机:docker exec -it node3 sh

 进入之后输入:etcdctl get /spring/name

然后关闭第一个主机:docker stop node1 

然后我们查看:etcdctl memner list

--listen-client-urls #监听 URL;用于与客户端通讯
--listen-peer-urls   #监听 URL;用于与其他节点通讯
--initial-advertise-peer-urls  #告知集群其他节点 URL
--advertise-client-urls  #告知客户端 URL
--initial-cluster-token  #集群的 ID
--initial-cluster        #集群中所有节点
--initial-cluster-state new  #表示从无到有搭建 etcd 集群

如果虚拟机带不动 我们就可以使用这个方式

 

到了这里,关于微服务自动化 etcd集群搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LinuxGUI自动化测试框架搭建(二十三)-框架主入口main.py设计&sendmail邮件服务调用和生成

    组织运行所有的测试用例,并测试报告和测试结果通过邮件形式发给项目成员。 设计框架主入口,发送邮件。 设计框架主入口; 调用邮件服务模块; 发送邮件。 4.1 设计main.py脚本 打开 main.py

    2024年02月01日
    浏览(45)
  • 【Ambari】Ansible自动化部署大数据集群

    目录 一.版本说明和介绍信息 1.1 大数据组件版本 1.2 Apache Components 1.3 Databases支持版本 二.安装包上传和说明 三.服务器基础环境配置 3.1global配置修改 3.2主机名映射配置 3.3免密用户名密码配置 3.4 ansible安装 四. 安装Ambari-server 4.1 安装ambari-server 4.2 检查REPO源 五、HDP 安装

    2024年04月15日
    浏览(65)
  • selenium 自动化测试—如何搭建自动化测试环境?

    🍅 视频学习: 文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 最近也有很多人私下问我,selenium学习难吗,基础入门的学习内容很多是3以前的版本资料,对于有基础的人来说,3到4的差别虽然有,但是不足以影响自己,

    2024年02月19日
    浏览(94)
  • Apache DolphinScheduler 如何实现自动化打包+单机/集群部署?

    Apache DolphinScheduler 是一款开源的分布式任务调度系统,旨在帮助用户实现复杂任务的自动化调度和管理。DolphinScheduler 支持多种任务类型,可以在单机或集群环境下运行。下面将介绍如何实现 DolphinScheduler 的自动化打包和单机/集群部署。 所需环境:maven、jdk 执行以下shell完成

    2024年02月09日
    浏览(38)
  • selenium 自动化测试:如何搭建自动化测试环境,搭建环境过程应该注意的问题

    最近也有很多人私下问我,selenium学习难吗,基础入门的学习内容很多是3以前的版本资料,对于有基础的人来说,3到4的差别虽然有,但是不足以影响自己,但是对于没有学过的人来说,通过资料再到自己写的代码,发现有些东西没有,有些方法又不相同,导致脚本不能运行

    2024年02月10日
    浏览(48)
  • 从零搭建完整python自动化测试框架(UI自动化和接口自动化

    总体框架 PO模式、DDT数据驱动、驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭建 二、新建项目 三、基础功能实现 1. 配置功能实现(Conf) 2. 日志功能实现(Log) 3. 读取EXCEL实现(data) 4. 邮件发送实

    2024年02月07日
    浏览(65)
  • 从零搭建完整python自动化测试框架(UI自动化和接口自动化)

    总体框架 PO模式、DDT数据驱动、驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭建 二、新建项目 三、基础功能实现 1. 配置功能实现(Conf) 2. 日志功能实现(Log) 3. 读取EXCEL实现(data) 4. 邮件发送实

    2024年02月04日
    浏览(65)
  • 【自动化测试】Java+Selenium自动化测试环境搭建

    本主要介绍以Java为基础,搭建Selenium自动化测试环境,并且实现代码编写的过程。 1.Selenium介绍 Selenium 1.0 包含 core、IDE、RC、grid 四部分,selenium 2.0 则是在两位大牛偶遇相互沟通决定把面向对象结构化(OOPP)和便于编写代码的各自思想予以整合后形成的新工具,也就是我们所

    2024年02月11日
    浏览(50)
  • App自动化测试|Appium+Python自动化测试环境搭建

    搭建过程步骤如下: 安装jdk并配置好环境变量(jdk版本1.8以上) 安装android-sdk并配置好环境变量;具体步骤见:Android Studio安装(推荐使用这种方法安装SDK) - 环境配置 - 测试人社区 安装安卓模拟器 安装node.js(官网下载安装最新版本) ;下载地址:下载 | Node.js 中文网 找到wind

    2024年02月12日
    浏览(48)
  • Kafka单机到集群- 自动化- SSL以及全部配置文件 作者精选

    本文实现kafka集群的配置和启动过程。并将脚本自动化,使得通用性、独立性更强。 用途 参考资料 kafka官方文档:包含安装部署、配置项、api使用等详细信息 附件: Kafka并不难学!:入门、进阶、商业实战 (邓杰) :包含kafka入门和linux快捷操作等系统化认识的内容。 名词 文

    2024年04月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包