《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台主机需相同。

bash 复制代码
[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节点部署

bash 复制代码
[root@ecs-bdb3-0001 etcd-cluster]# ./op.sh build etcd1

执行结果,如下图所示:


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

bash 复制代码
[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节点部署

bash 复制代码
[root@ecs-bdb3-0002 etcd-cluster]# ./op.sh build etcd2

执行结果,如下图所示:


4、etcd3节点部署

bash 复制代码
[root@ecs-bdb3-0003 etcd-cluster]# ./op.sh build etcd3

执行结果,如下图所示:


五、其它操作

5.1、启动

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

bash 复制代码
[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、停止

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

bash 复制代码
[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、检查

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

bash 复制代码
[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、卸载

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

bash 复制代码
[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系统运维指南》

相关推荐
FREEDOM_X6 分钟前
Linux 多线程编程——总结
java·linux·运维·ubuntu
名字还没想好☜18 分钟前
Docker 多阶段构建:把镜像从 1.2GB 砍到 15MB
运维·docker·容器·多阶段构建·镜像优化
阳明山水24 分钟前
从论文到生产:销量预测系统的工程化落地实践
大数据·人工智能·深度学习·机器学习·架构
祸心依旧26 分钟前
Visual Studio 五月更新 —— 计划、评审、优化
运维·人工智能·visual studio
凛风前行29 分钟前
多智能体架构的 5 种经典模式
架构·agent
胡萝卜术40 分钟前
从聊天模型到本地执行助手:Remote MCP 多工具 Agent 实战
面试·架构·github
Web4Browser42 分钟前
Headless 浏览器自动化适合哪些任务?巡检、截图和提交动作要分级
运维·前端·自动化
杉氧43 分钟前
Compose 渲染内核 (3):Slot Table 与 Gap Buffer —— 极速重组的数学艺术
android·架构·android jetpack
難釋懷1 小时前
Nginx浏览器强制缓存
运维·nginx·缓存
飞花绫1 小时前
嵌入式 TCP/UDP 双通道架构:为什么控制与发现要分离
tcp/ip·架构·udp