《Linux运维总结:基于X86_64+ARM64架构CPU使用docker-compose一键离线部署consul 1.18.1容器版分布式ACL集群》

news2024/11/13 14:34:11

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

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


一、部署背景

由于业务系统的特殊性,我们需要面向不通的客户安装我们的业务系统,而作为基础组件中的consul 针对不同的客户环境需要多次部署集群,作为一个运维工程师,提升工作效率也是工作中的重要一环。所以我觉得有必要针对 x86_64 + ARM64 CPU架构consul v1.18.1容器版集群编写自动化部署工具。

CPU架构 docker版本 docker-compose版本
X86_64 26.1.3 v2.29.0
ARM64 26.1.3 v2.29.0

二、工具介绍

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

1、支持ARM64、X86_64架构CPU
2、支持单实例部署
3、支持单机伪集群部署(3 server + 1 client)
4、支持多机分布式集群部署(3 server + 1 client)
5、支持数据目录、日志目录、端口、ACL令牌token、Gossip Encryption Key参数灵活配置
6、支持创建、启动、停止、卸载等操作

如下图所示:
在这里插入图片描述

说明:工具使用非常简单,只需要修改变量文件,一分钟就可以快速帮你部署consul集群。


三、工具下载

基于X86_64+ARM64架构CPU使用docker-compose一键离线部署consul v1.18.1容器版ACL集群工具


四、部署步骤

说明:单机伪集群是指在单主机部署consul集群,分布式集群是指在多个不同主机上部署consul集群,这里部署的是多机分布式集群。


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


2、准备一键部署工具包

说明:将一键部署工具包分别上传到consul集群server1节点上。


3、编辑变量文件

说明:以下操作分别在consul集群节点的部署工具包中修改cluster.conf文件,四个节点上cluster.conf文件内容一致。

[root@consul-server1 consul]# cp cluster.conf.tpl cluster.conf
[root@consul-server1 consul]# vim cluster.conf 
# 多机分布式集群<3 server + 1 client + 单数据中心>
# 建议填写为当前磁盘最大存储空间目录,如果系统盘空间最大,建议填写为/data,如果挂在盘空间最大,建议填写为挂载目录
export BASE_DIR="/data"

# cpu架构,可选值为x86_64和aarch64,根据实际情况修改
export CPU_PLATFROM="aarch64"

# consul服务版本,默认不修改
export CONSUL_VERSION="v1.18.1"

# consul数据存储根目录,默认不修改
export CONSUL_DATA_DIR="${BASE_DIR}/basic-data/consul-cluster"

# 1、如果部署的是<单机伪集群>,请修改所有端口,确保<端口不重复>
# 2、如果部署的是<多机分布式集群>,端口不冲突情况下,可<使用如下默认端口>
export CONSUL_SERVER1_HOST="192.168.1.111"         # consul server1节点主机ip地址,根据实际情况修改  
export CONSUL_SERVER1_NODE_NAME="consul-server1"   # consul server1节点名称,根据实际情况修改
export CONSUL_SERVER1_PORT="8300"                  # consul server1节点rpc端口,端口不冲突情况下,建议不修改
export CONSUL_SERVER1_SERF_LAN_PORT="8301"         # consul server1节点serf_lan端口,端口不冲突情况下,建议不修改
export CONSUL_SERVER1_DNS_PORT="8600"              # consul server1节点DNS服务端口,端口不冲突情况下,建议不修改
export CONSUL_SERVER1_HTTPS_API_PORT="8501"        # consul server1节点HTTPS API端口,端口不冲突情况下,建议不修改

export CONSUL_SERVER2_HOST="192.168.1.112"         # consul server2节点主机ip地址,根据实际情况修改  
export CONSUL_SERVER2_NODE_NAME="consul-server2"   # consul server2节点名称,根据实际情况修改
export CONSUL_SERVER2_PORT="8300"                  # consul server2节点rpc端口,端口不冲突情况下,建议不修改
export CONSUL_SERVER2_SERF_LAN_PORT="8301"         # consul server2节点serf_lan端口,端口不冲突情况下,建议不修改
export CONSUL_SERVER2_DNS_PORT="8600"              # consul server2节点DNS服务端口,端口不冲突情况下,建议不修改
export CONSUL_SERVER2_HTTPS_API_PORT="8501"        # consul server2节点HTTPS API端口,端口不冲突情况下,建议不修改

export CONSUL_SERVER3_HOST="192.168.1.113"         # consul server3节点主机ip地址,根据实际情况修改  
export CONSUL_SERVER3_NODE_NAME="consul-server3"   # consul server3节点名称,根据实际情况修改
export CONSUL_SERVER3_PORT="8300"                  # consul server3节点rpc端口,端口不冲突情况下,建议不修改
export CONSUL_SERVER3_SERF_LAN_PORT="8301"         # consul server3节点serf_lan端口,端口不冲突情况下,建议不修改
export CONSUL_SERVER3_DNS_PORT="8600"              # consul server3节点DNS服务端口,端口不冲突情况下,建议不修改
export CONSUL_SERVER3_HTTPS_API_PORT="8501"        # consul server3节点HTTPS API端口,端口不冲突情况下,建议不修改

export CONSUL_CLIENT_HOST="192.168.1.114"          # consul cilent节点主机ip地址,根据实际情况修改
export CONSUL_CLIENT_NODE_NAME="consul-client"     # consul clinet节点名称,根据实际情况修改
export CONSUL_CLIENT_SERF_LAN_PORT="8301"          # consul client节点serf_lan端口,端口不冲突情况下,建议不修改
export CONSUL_CLIENT_DNS_PORT="8600"               # consul client节点DNS服务端口,端口不冲突情况下,建议不修改
export CONSUL_CLIENT_HTTPS_API_PORT="8501"         # consul client节点HTTPS API端口,端口不冲突情况下,建议不修改

# 配置Gossip Encryption Key,对集群Agent之间的Gossip进行加密传输,可使用consul keygen随机生成该密钥
export CONSUL_ENCRYPT_KEY="8iGS01OkGRfJ58DMXYxut9btcBhXQWY9Ee3n3Bf4218="

# 配置ACL令牌,用于登录Consul Web页面,可使用uuidgen命令随机生成该令牌token
export CONSUL_ACL_TOKEN="566a1196-f311-418c-9dd1-59bcf9250a1a"

4、分发安装包

[root@consul-server1 pkgs]# scp -r consul_tools root@192.168.1.112:/data/pkgs
[root@consul-server1 pkgs]# scp -r consul_tools root@192.168.1.113:/data/pkgs
[root@consul-server1 pkgs]# scp -r consul_tools root@192.168.1.114:/data/pkgs

5、执行部署

说明:根据cluster.conf规划,分别在consul集群节点上执行部署。

# 1、在server1节点
[root@consul-server1 consul]# ./op.sh build server1

# 2、在server2节点
[root@consul-server2 consul]# ./op.sh build server2

# 3、在server3节点
[root@consul-server3 consul]# ./op.sh build server3

# 4、在client节点
[root@consul-client consul]# ./op.sh build client

5、检查集群状态
在这里插入图片描述


五、其它操作

5.1、启动

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

[root@consul-server1 consul-tools]# ./op.sh start server1
[root@consul-server2 consul-tools]# ./op.sh start server2
[root@consul-server3 consul-tools]# ./op.sh start server3
[root@consul-client consul-tools]# ./op.sh start client

5.2、停止

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

[root@consul-server1 consul-tools]# ./op.sh stop server1
[root@consul-server2 consul-tools]# ./op.sh stop server2
[root@consul-server3 consul-tools]# ./op.sh stop server3
[root@consul-client consul-tools]# ./op.sh stop client

5.3、检查

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

[root@consul-server1 consul-tools]# ./op.sh check server1
[root@consul-server2 consul-tools]# ./op.sh check server2
[root@consul-server3 consul-tools]# ./op.sh check server3
[root@consul-client consul-tools]# ./op.sh check client

5.4、卸载

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

[root@consul-server1 consul-tools]# ./op.sh clear server1
[root@consul-server2 consul-tools]# ./op.sh clear server2
[root@consul-server3 consul-tools]# ./op.sh clear server3
[root@consul-client consul-tools]# ./op.sh clear client

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2107553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

纹理视图和模型视图画的不同步?

这个是什么情况&#xff0c;纹理视图和模型视图画的不同步了 这个是因为材质球没上给模型&#xff0c;材质球再拖一下给模型。

表连接查询之两个left join与递归SQL

一、如下SQL1 SELECT i.*,su1.name as createName,su2.name as updateNameFROM information ileft join sys_user su1 on su1.idi.create_idleft join sys_user su2 on su2.idi.update_id 二、分析 1、SELECT i.*,su.name as createName,sua.name as updateName FROM informati…

EPLAN2022基础教程

EPLAN2022软件介绍 EPLAN是一款专业的电气设计和绘图软件&#xff0c;它可以帮助我创建和管理电气项目&#xff0c;生成各种报表和文档&#xff0c;与其他软件和系统进行交互&#xff0c;优化工程流程和质量。与传统的CAD绘图对比&#xff0c;EPLAN更适合绘制电气原理图。 下…

【STM32】Cortex-M3的Systick定时器(实现Delay延时)

本篇博客重点在于标准库函数的理解与使用&#xff0c;搭建一个框架便于快速开发 目录 前言 Systick介绍 Systick相关寄存器 控制和状态寄存器- CTRL 重装载数值寄存器- LOAD 当前值寄存器- VAL SysTick库函数 初始化 时钟源选择 SysTick中断 Delay代码 Delay.h D…

青岛实训 8月21号 day33

1.设置主从从mysql57服务器 1&#xff09;配置主数据库 [rootmsater_5 ~]# systemctl stop filewalld [rootmsater_5 ~]# setenforce 0 [rootmsater_5 ~]# systemctl disable filewalld [rootmsater_5 ~]# ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64.tar.g…

[vue] index.html中获取process.env.NODE_ENV

在index中使用环境变量直接用&#xff1a;process.env 是无法获取到的 需要使用&#xff1a; <% process.env.NODE_ENV %> // 获取环境变量 index.html固定写法 参考&#xff1a; 在vue-cli创建项目中的index.html中根据环境环境变量不同埋点

vue 踩坑记录

本地开发没有cookie 解决方案 设置代理&#xff0c;并把changeOrigin设为true proxy的changeOrigin如果设置为false&#xff1a;请求头中host仍然是浏览器发送过来的host&#xff1b; 如果设置成true&#xff1a;发送请求头中host会设置成target。 允许axios请求携带cookie等凭…

TensorFlow-keras介绍(一)

目录 一.回顾神经网络 1.神经网络 2.感知机 3.神经网络原理 1.softmax回归 2.交叉熵 二.Keras介绍 1.Keras框架的特点 2.使用tf.keras进行模型构建 1.使用Sequential构建模型 2.利用keras提供的API建立较为复杂的模型 3.model的子类进行创建 都看到这里了&#xff…

软件测试最新项目合集【商城、外卖、银行、金融等等.......】

项目一&#xff1a;ShopNC商城 项目概况&#xff1a; ShopNC商城是一个电子商务B2C电商平台系统&#xff0c;功能强大&#xff0c;安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城&#xff0c;系统PC后台是基于ThinkPHP MVC构架开发的跨…

MySQL基础:索引

&#x1f48e;所属专栏&#xff1a;MySQL 1. 索引概述 MySQL中的索引是帮助MySQL高效获取数据的数据结构&#xff0c;可以极大地提高数据库的查询效率&#xff0c;减少数据库的I/O成本&#xff0c;就像书的目录一样&#xff0c;它可以帮助我们快速定位到书中的内容。 优势&…

《深入理解JAVA虚拟机(第2版)》- 第8章 - 学习笔记

第8章 虚拟机字节码执行引擎 8.1 概述 执行引擎是Java虚拟机最为核心的组成部分之一。在不同的虚拟机里面&#xff0c;执行引擎在执行Java代码的时候可能会有解释执行&#xff08;通过解释器执行&#xff09;和编译执行&#xff08;通过即时编译器生成本地代码执行&#xff0…

监控平台之nodejs模拟后端接口

github&#xff1a;可以下载进行实验 https://github.com/Mr-Shi-root/sdk-platform/tree/master 1.配置node环境&#xff0c;安装express cors body-parser babel/cors body-parser - node.js 中间件&#xff0c;用于处理 JSON, Raw, Text 和 URL 编码的数据。cookie-parse…

光伏清洁机器人4G之痛,LoRa通讯取而代之?

光伏清洁机器人是一种专门用于清洁光伏组件&#xff08;太阳能电池板&#xff09;的自动化机器人。通过自主或者远程控制自动清洁光伏板上的尘土、鸟粪、树叶等污染物&#xff0c;在提升清洁效果的同时提高光伏电站的发电效率。然而&#xff0c;面对偏远无人区的孤岛效应及复杂…

交友系统“陌陌”全方位解析

交友系统在现代社会中扮演着越来越重要的角色&#xff0c;尤其是随着互联网技术的发展&#xff0c;各种交友软件层出不穷。陌陌作为其中的佼佼者&#xff0c;其全方位解析对于理解交友系统的商业开发至关重要。 陌陌的核心功能是提供基于地理位置的社交服务&#xff0c;用户可…

MES生产制造执行系统源码,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验。

企业需要MES生产制造执行系统来提供实现从订单下达到完成品的生产活动优化所得信息&#xff0c;并运用及时准确的数据&#xff0c;指导、启动、响应并记录车间生产活动&#xff0c;对生产条件的变化做出迅速的响应&#xff0c;减少非增值活动&#xff0c;提高效率&#xff0c;为…

# 利刃出鞘_Tomcat 核心原理解析(十)-- Tomcat 性能调优--1

利刃出鞘_Tomcat 核心原理解析&#xff08;十&#xff09;-- Tomcat 性能调优–1 一、Tomcat专题 - Tomcat性能调优 - 性能测试 1、tomcat 性能测试&#xff1a; 对于系统性能&#xff0c;用户最直观的感受就是系统的加载和操作时间&#xff0c;即用户执行某项操作的耗时。从…

SketchUp Pro 2024 for Mac/Win:专业3D建模软件的卓越之选

SketchUp Pro 2024作为一款在业界广受好评的三维建模软件&#xff0c;不仅适用于Mac系统&#xff0c;也完美兼容Windows平台&#xff0c;为用户提供了跨平台的强大建模能力。该软件以其直观易用的界面设计著称&#xff0c;无论是初学者还是资深设计师&#xff0c;都能迅速上手并…

介绍冯诺依曼体系结构和操作系统

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 &#x1f308;C专栏&#xff1a;C 文章目录 1. 冯诺依曼体系结构2. 操作系统&#xff08;O…

【数据结构取经之路】位图全解

目录 前言 C标准库里的位图 位图的设计及实现 位图几个关键接口的实现 set() reset() test() 完整代码 位图的使用场景 位图的优缺点 位图的使用演示 —— 几道面试题的讲解 前言 位图&#xff08;Bitmap&#xff09;是一种非常高效的数据结构&#xff0c;主要用于处…

Claude Enterprise:Anthropic 推出企业级AI助手挑战OpenAI

Anthropic公司推出了Claude Enterprise&#xff0c;这是一项新的企业级AI服务&#xff0c;旨在提供更安全、更可控的AI聊天机器人体验。通过这个服务&#xff0c;企业可以将内部知识库与Claude机器人连接&#xff0c;使其能够访问和分析公司数据&#xff0c;从而回答员工的查询…