腾讯云上搭建JumpServer高可用堡垒机
一句话概括:
在腾讯云上实现JumpServer高可用架构,避免单节点故障导致的服务意外停止。
一、面临的挑战
(一)单个JumpServer实例可能无法满足并发需求增长;
(二)在非集群环境中,数据一致性难以保证;
(三)单一节点无法实现负载均衡,容易单一节点过载。
二、方案概述
(一)部署架构
为满足平台高可用性,保证各节点数据一致性,本次设计集群部署架构。核心服务与数据库服务拆分部署,数据库采用主主部署,保证数据库的高可用;JumpServer 节点采用两个节点集群,保证应用高可用性,具体情况如下。
(二)JumpServer集群部署模式
JumpServer采用两个节点服务,组成集群,前端使用nginx负载均衡做高可用,分担负载。审计录像配置自动上传至共享存储,审计日志保存到数据库当中。
(三)MySQL数据库部署模式
MySQL数据库主要保存JumpServer核心数据,包括资产信息、授权信息、审计信息等。各个节点连接数据库时对数据库的带宽与时延要求不高,各个JumpServer节点统一连接到一个数据库(vip),同时,规定资产、用户、授权的变更在一个数据中心入口进行,保证数据一致性。使用云数据库 TencentDB for MySQL来减少运维成本,也可以保护数据安全。
(四)Redis数据库部署模式
Redis数据库中无持久化数据。使用云数据库 TencentDB for Redis来减少运维成本。
(五)共享存储配置
集群节点共享一组静态文件,如 Celery 任务列表,前端 logo 等静态文件,利用 文件存储CFS作为共享存储,存放该系列文件,以便集群任务同步。该目录下文件不影响主要功能运行,出现故障时,不影响各自集群运行。
同时考虑录像存储未来将占用大量空间,将录像存放至可扩展的共享存储,以便后续存放与审计查看。
(六)节点资源需求
本次部署所需要的资源如下:
角色 | 数量 | 资源配置 | 部署说明 |
JumpServer节点 | 2台 | CentOS/RedHat以上 2C8G60G | JumpServer节点,前端采用负载均衡方式。 /opt/jumpserver/core/data目录挂载到共享目录下 |
MySQL数据库 | 1台 | 云数据库MySql 8.0 2C4G100G | 使用云数据库 TencentDB for MySQL |
Redis数据库 | 1台 | 云数据库Redis 6.2 内存版2G | 使用云数据库 TencentDB for Redis |
共享存储 | 1台 | 512G以上 | 存放集群共享静态文件以及录像。 |
负载均衡 | 1 | nginx软负载均衡 4C8G100G | 作为节点访问入口 |
(七)案例部署
准备两台云服务器,按要求部署:
组件 | |
JumpServer01 | 部署JumpServer应用,/opt/jumpserver/core/data目录挂载到共享目录下 |
JumpServer02 | 部署JumpServer应用,/opt/jumpserver/core/data目录挂载到共享目录下 |
启动JumpServer服务
新建一个负载均衡,配置监听器,将两台服务器绑定后端服务。
通过负载均衡的公网IP访问JumpServer。
关闭一台服务器的JumpServer服务,负载均衡公网IP仍可访问JumpServer,体现出集群部署的优势。
三、方案预算
名称 | 配置 | 数量 | 单位 | 费用/年 |
云服务器 CVM | 规格:2vCPU,8GiB;操作系统:Centos7.9 64位; 系统盘:60GiB | 2 | 套 | 6035.76元 |
负载均衡CLB | 实例规格:共享型;带宽值:5Mbps | 1 | 套 | 2679.24元 |
文件存储CFS | 资源类型:通用标准型;容量:512GiB | 1 | 套 | 2150.40元 |
云数据库MySql | 版本: 8.0;架构:单节点; 规格: 2vCPU,4GiB;硬盘:100GiB | 1 | 套 | 2304.00元 |
云数据库Redis | 兼容版本:6.2;产品版本:内存版; 内存容量:2G | 1 | 套 | 1513.92元 |
总价 | 14683.32元 |
以上只是列举了部分JumpServer高可用堡垒机的应用场景和功能,想要了解更多欢迎企微或电话咨询客服小姐姐。