两台服务器搭建三个节点

前情提要:

我们需要搭建redis/nacos/es/rabbitmq/mongodb等中间件服务。提出计划是要三台机器进行搭建。众所周知,为了防止脑裂,大部分中间件最少需要三个节点。

但是甲方只给出了两台机器。两台机器构建三个节点,势必会让一个服务来构建两个节点。我们的安装程序是sudo rpm -ivh xxx-aarch64.rpm 直接进行安装的,不是解压安装包的方式,需要修改配置文件让支持两个节点运行。备用方案:单节点部署

服务器是涉密服务器,不允许我们操作,对方人在机房操作,机房不能拿手机,有问题需要抄写到纸上,再出来给我们打电话沟通问题。我按照网上的方式给出了修改配置文件的方法,但是行与不行我自己也没有底,所以需要自己构建服务器进行演练,验证一下配置更改是否能够正常运行。

docker 构建基础的运行环境

没有提供服务器,只提供了服务器的型号。"基于通用机+麒麟V10SP3+ARM部署包实施"

复制代码
# 提前备份记录好当前docker环境的镜像,容器信息
docker ps -a >> docker_ps_-a.txt
docker images >> docker_images.txt


# 尝试检索麒麟镜像
docker search kylin
# 执行失败, 去轩辕官网检索麒麟镜像https://xuanyuan.cloud/

#docker 镜像拉取
docker pull macrosan/kylin:v10-sp3
# 查看进行是否下载成功
docker images |grep kylin

# 根据镜像kylin创建容器, 为了保证项目存活,每20秒打印一次日志。
# 非麒麟镜像,记得替换macrosan/kylin:v10-sp3 为你自己的镜像名称。
docker run -d --name demo-container   macrosan/kylin:v10-sp3   /bin/bash -c "echo '容器启动时间: $(date)'; while true; do echo \"\$(date '+%Y-%m-%d %H:%M:%S') - Kylin日志打印\"; sleep 20; done"

# 验证项目启动成功
docker ps -a |grep kylin
# 此时看到日期打印说明容器启动成功
docker logs -f demo-container


# 停止容器
docker stop demo-container
# 删除容器
docker rm demo-container

至此解决了服务器的问题,因为要验证是两个服务器部署三个节点。能保证服务间通讯是正常的,我要验证的点是一个服务部署两个节点,配置文件的更改是否有效,是否能启动,为了减少环境搭建的困难,我也可以一个服务部署三个节点进行验证。

基础容器缺少很多命令,先进行安装,方便使用,以下命令都是需要进入容器之后进行安装。

复制代码
# 进入容器(docker exec -it demo-container bash)

# 安装vim
yum install vim

# 安装zip解压软件
yum install zip

# 添加ll命令
echo "alias ll='ls -alF'" >> ~/.bashrc
# 查看文件最后几行,应该包含ll='ls -alF'
tail -5 ~/.bashrc
# 是配置文件生效
source ~/.bashrc

# 添加systemd, 更改机器名称使用
yum install systemd

# 安装ping命令
yum install -y iputils

------------------------此处是分割线,未完待续---------

mongoDB集群安装

复制代码
# 进入容器
docker exec -it demo-container bash

redis集群安装

复制代码
# 进入容器
docker exec -it demo-container bash

ElasticSearch集群安装

复制代码
# copy准备好的文件到容器内。
docker cp elasticsearch-xxx  demo-container:/
# 进入容器
docker exec -it demo-container bash

nacos集群安装

复制代码
# 进入容器
docker exec -it demo-container bash

rabbitmq集群安装

复制代码
# 进入容器
docker exec -it demo-container bash
相关推荐
飞舞花下16 小时前
微服务架构栈
微服务·云原生·架构
垂金烟柳1 天前
使用 sealos 部署 k8s
云原生·容器·kubernetes
java1234_小锋1 天前
Zookeeper集群数据是如何同步的?
分布式·zookeeper·云原生
沛沛老爹1 天前
Web开发者实战A2A智能体交互协议:从Web API到AI Agent通信新范式
java·前端·人工智能·云原生·aigc·交互·发展趋势
Wilson Chen1 天前
从“手搓”到云原生:某 B2B 平台服装 AI 搜索架构演进实战
人工智能·云原生·架构
Elastic 中国社区官方博客1 天前
使用 Elastic Cloud Serverless 扩展批量索引
大数据·运维·数据库·elasticsearch·搜索引擎·云原生·serverless
2401_832298101 天前
云服务器架构演进:从虚拟化到容器化与无服务器的跨越
eureka
南宫乘风2 天前
Kubernetes 本地存储实战:Open-Local 从部署到生产级应用
云原生·容器·kubernetes
小股虫2 天前
分布式事务:在增长中台,我们如何做到“发出去的内容”和“记录的数据”不打架?
分布式·微服务·云原生·架构·团队建设·方法论
忧郁蓝调262 天前
Redis不停机数据迁移:基于 redis-shake 的跨实例 / 跨集群同步方案
运维·数据库·redis·阿里云·缓存·云原生·paas