当前位置: 首页 > news >正文

《Linux运维总结:基于x86_64架构CPU使用docker-compose一键离线部署etcd 3.5.15容器版分布式集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》


一、部署背景

由于业务系统的特殊性,我们需要面对不同的客户部署业务系统,etcd作为重要的一环,为了更快捷有效的部署etcd,这里编写了基于x86_64架构一键离线docker容器版etcd 3.5.15集群工具。

docker版本 docker-compose版本
26.1.3 v2.29.0

二、工具介绍

一键部署工具实现功能如下:

1、支持单机部署(1 etcd)。
2、支持单机伪集群部署(3 etcd)。
3、支持多机分布式机部署(3 etcd)。
4、支持数据目录、端口灵活配置。
5、支持数据目录、日志目录持久化。
6、支持部署、启动、停止、卸载、检测等操作。


三、工具下载

基于x86_64架构CPU使用docker-compose一键离线部署etcd v3.5.15容器版分布式集群工具


四、部署步骤

说明:这里就只演示,在3台主机上部署etcd 3.5.15集群。

1、查看帮助命令
在这里插入图片描述


2、编辑变量文件

说明:变量文件内容3台主机需相同。

[root@ecs-bdb3-0001 etcd-cluster]# cp cluster.conf.tpl cluster.conf
[root@ecs-bdb3-0001 etcd-cluster]# vim cluster.conf
# 建议填写为当前磁盘最大存储空间目录,如果系统盘空间最大,建议填写为/data,如果挂在盘空间最大,建议填写为挂载目录
export BASE_DIR=""# etcd1主机内网IP/端口,端口不冲突情况下,建议不修改
export ETCD1_HOST="192.168.1.111"
export ETCD1_CLIENT_PORT="3179"              # 提供HTTP API服务,用于客户端与etcd交互
export ETCD1_PEER_PORT="3180"                # 用于etcd集群内部成员之间的通信,包括数据同步和心跳检测  
export ETCD1_PROMETHEUS_PORT="3181"          # Prometheus度量指标提供程序使用此端口来提供etcd的性能指标
export ETCD1_CONTAINER_NAME="etcd-cluster-1" # etcd1节点容器名称,可根据实际需求修改# etcd2主机内网IP/端口,端口不冲突情况下,建议不修改
export ETCD2_HOST="192.168.1.112"
export ETCD2_CLIENT_PORT="3279"              # 提供HTTP API服务,用于客户端与etcd交互
export ETCD2_PEER_PORT="3280"                # 用于etcd集群内部成员之间的通信,包括数据同步和心跳检测  
export ETCD2_PROMETHEUS_PORT="3281"          # Prometheus度量指标提供程序使用此端口来提供etcd的性能指标
export ETCD2_CONTAINER_NAME="etcd-cluster-2" # etcd2节点容器名称,可根据实际需求修改# etcd3主机内网IP/端口,端口不冲突情况下,建议不修改
export ETCD3_HOST="192.168.1.113" 
export ETCD3_CLIENT_PORT="3379"              # 提供HTTP API服务,用于客户端与etcd交互
export ETCD3_PEER_PORT="3380"                # 用于etcd集群内部成员之间的通信,包括数据同步和心跳检测
export ETCD3_PROMETHEUS_PORT="3381"          # Prometheus度量指标提供程序使用此端口来提供etcd的性能指标
export ETCD3_CONTAINER_NAME="etcd-cluster-3" # etcd3节点容器名称,可根据实际需求修改# 数据存储目录,默认不修改
export ETCD_DATA_DIR="${BASE_DIR}/basic-data"

3、执行一键部署

1、etcd1节点部署

[root@ecs-bdb3-0001 etcd-cluster]# ./op.sh build etcd1

执行结果,如下图所示:
在这里插入图片描述


2、分发部署包到etcd2和etcd3节点

[root@ecs-bdb3-0001 opt]# scp -r etcd-cluster root@192.168.1.112:/opt
[root@ecs-bdb3-0001 opt]# scp -r etcd-cluster root@192.168.1.113:/opt

3、etcd2节点部署

[root@ecs-bdb3-0002 etcd-cluster]# ./op.sh build etcd2

执行结果,如下图所示:
在这里插入图片描述


4、etcd3节点部署

[root@ecs-bdb3-0003 etcd-cluster]# ./op.sh build etcd3

执行结果,如下图所示:
在这里插入图片描述


五、其它操作

5.1、启动

说明:分别在对应主机节点上执行。

[root@ecs-bdb3-0001 etcd-cluster]# ./op.sh start etcd1
[root@ecs-bdb3-0002 etcd-cluster]# ./op.sh start etcd2
[root@ecs-bdb3-0003 etcd-cluster]# ./op.sh start etcd3

5.2、停止

说明:分别在对应主机节点上执行。

[root@ecs-bdb3-0001 etcd-cluster]# ./op.sh stop etcd1
[root@ecs-bdb3-0002 etcd-cluster]# ./op.sh stop etcd2
[root@ecs-bdb3-0003 etcd-cluster]# ./op.sh stop etcd3

5.3、检查

说明:分别在对应主机节点上执行。

[root@ecs-bdb3-0001 etcd-cluster]# ./op.sh check etcd1
[root@ecs-bdb3-0002 etcd-cluster]# ./op.sh check etcd2
[root@ecs-bdb3-0003 etcd-cluster]# ./op.sh check etcd3

执行结果,如下图所示:
在这里插入图片描述


5.4、卸载

说明:分别在对应主机节点上执行。

[root@ecs-bdb3-0001 etcd-cluster]# ./op.sh clear etcd1
[root@ecs-bdb3-0002 etcd-cluster]# ./op.sh clear etcd2
[root@ecs-bdb3-0003 etcd-cluster]# ./op.sh clear etcd3

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python办公自动化:使用openpyxl对工作表进行基本操作
  • 【性能优化】DNS解析优化
  • Python,Spire.Doc模块,处理word、docx文件,极致丝滑
  • 数据结构-排序的概念、应用及其算法实现1(直接插入排序、希尔排序、选择排序、堆排序、冒泡排序)
  • C++第三十六弹---二叉搜索树的性能飞跃:AVL树原理与实现
  • 钢铁百科:A572Gr60和SA572Gr60材质分析、A572Gr60和SA572Gr60简介
  • 【智能启航,速通电工电子!SmartEDA如何成为你的学习加速器】
  • KCP协议(一)
  • 如何制作微课?微课的制作方法和步骤教程,微课录制软件推荐!
  • 数据依赖,执行顺序,promise,async/await
  • 系统架构师质量属性与架构评估案例分析
  • hive sql 处理多层 json 数组
  • 用R语言运用 Shiny 包打造基于鸢尾花数据集的交互式数据可视化应用
  • 探索Delphi的图形与图像处理能力:从基础到高级应用
  • 获利能力段-新增自定义特性、特性派生增强
  • [case10]使用RSQL实现端到端的动态查询
  • 10个最佳ES6特性 ES7与ES8的特性
  • Android开源项目规范总结
  • ES6之路之模块详解
  • HashMap剖析之内部结构
  • HTTP那些事
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java IO学习笔记一
  • Java方法详解
  • k8s 面向应用开发者的基础命令
  • ng6--错误信息小结(持续更新)
  • pdf文件如何在线转换为jpg图片
  • Python学习之路16-使用API
  • Spring-boot 启动时碰到的错误
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 分享一份非常强势的Android面试题
  • 类orAPI - 收藏集 - 掘金
  • 前端js -- this指向总结。
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • ​io --- 处理流的核心工具​
  • ​决定德拉瓦州地区版图的关键历史事件
  • #微信小程序:微信小程序常见的配置传值
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (笔试题)合法字符串
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十三)Flink SQL
  • .gitignore
  • .gitignore不生效的解决方案
  • .NET 5种线程安全集合
  • .net mvc部分视图
  • .NET Project Open Day(2011.11.13)
  • .net 无限分类
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .net6 webapi log4net完整配置使用流程
  • .net快速开发框架源码分享
  • .NET学习全景图