一.前提概要

由于云服务器配置价格昂贵,且测试服环境不需要太大的带宽适配用户,那么把测试环境和开发环境放在本地服务器部署,可以节省大量的费用,增加本地云服务器部署,主要增对测试和开发内网使用,通过阿里云vps内网穿透对外少量用户开放使用。
目的:下云,且更便宜的本地服务器配置,省钱,有更高的操作空间
缺点:需要人手去维护

二.本地服务器配置

基础配置

2台下面 minipc配置 2650*2=5300元

组件 型号 价格 购买渠道 配置
准系统 极摩客M6 (R5-6600H) ¥1300(1288) 京东 6核12线程
内存 DDR5 32GBx2(笔记本内存条) ¥1000~1100 京东 64g
SSD ssd 1TB ¥350~400 京东 ssd 1TB
总价 ¥2650~2800

1台下面 minipc配置 2000*1=2000元

组件 型号 价格 购买渠道 配置
准系统 极摩客M6 (R5-6600H) ¥1300(1288) 京东 6核12线程
内存 DDR5 32GBx1(笔记本内存条) ¥500 京东 32g
SSD ssd 500gb ¥200 京东 ssd 500g
总价 ¥2000

总配置
18核36线程160G内存2.5TSSD 的服务器,总价约7300元

使用时长预估:5~7年

三.架构设计

3.1测试服环境架构图(本地物理服务+阿里云)

20250314184349.jpg

3.2关键设计

1.全内网闭环:代码仓库、CI/CD工具链均部署在内网,保障开发过程安全性

2.灰度策略:通过Harbor镜像版本控制实现渐进式发布

3.环境隔离:DEV/TEST环境通过K8s Namespace隔离

4.外网接入层:CDN加速静态资源,防火墙实现DDoS防护和WAF

5.穿透机制:FRP用于将公网流量安全引入内网物理服务器集群

6.统一入口:内外网流量最终汇聚到Spring Cloud Gateway实现路由鉴权

7.存储备份:存储对象minio备份集群配置和日志备份

8.监控告警:通过Prometheus对监控数据收集和管理,通过Grafana使数据可视化,并提供告警功能

3.3POD集群组成

核心组件说明

1. Nacos:服务注册发现+配置中心,实现动态扩缩容

2. 日志体系:Filebeat采集容器日志 -> ES存储 -> Kibana可视化

3. 消息队列:RabbitMQ实现异步解耦(订单/通知)

4. 监控告警:Prometheus和Grafana 实现监控告警

5. 数据分层

热数据:Redis缓存(秒杀/会话)

结构化数据:MySQL(交易/用户)

非结构化数据:MongoDB(日志/文件元数据)

3.4高可用设计

1.数据库集群:MySQL主从复制+Redis +MongoDB副本集

2.ES集群:3节点分片+1专用协调节点

3.服务熔断:Spring Cloud Gateway集成Sentinel限流降级

4.存储分离:MinIO对象存储与业务POD物理隔离

3.5网络拓扑‌

3.5.1内网用户访问路径

Client → SpringBoot Cloud Gateway → 业务服务

3.5.2外网用户访问路径

Client → CDN → 阿里云防火墙 → 阿里云VPS(Nginx) → frp内网穿透 → SpringBoot Cloud Gateway → 业务服务

四.‌K8S架构外围安全保护措施

4.1示意图

20250314151822.jpg

4.2服务器访问控制

‌跳板机访问‌:所有对服务器的远程访问均需通过跳板机进行。跳板机采用自建VPN+SSH访问方式,或者通过堡垒机账号密码+多因素认证(MFA)访问,确保访问过程的安全性。

‌办公室访问‌:仅限于办公室内网访问,避免外部直接访问带来的安全风险。

4.3 SSH端口防火墙设置

SSH端口设置为内网访问,仅允许内部网络中的合法用户进行访问。

仅暴露必要的对外访问端口,并严格监控和限制这些端口的访问权限。

4.4 K8S集群访问控制

K8S集群采用阿里云IDaaS登录访问,通过阿里云VPS的FRP服务端内网穿透到物理服务器的FRP客户端,实现安全访问。

利用Rancher多云容器管理平台进行K8S集群的管理和访问,提高管理效率和安全性。

4.5.远程连接到物理系统的安全措施‌

若存在远程连接到物理系统的需求,将采用多因素认证方式,确保连接过程的安全性,服务器部署有防火墙,用于拦截和过滤非法的网络访问。

‌防火墙规则‌:
禁止所有未经授权的外部访问。
允许内部网络中的合法用户通过特定端口进行访问。
对所有对外暴露的端口进行严格的访问控制和监控。
定期审查和更新防火墙规则,确保规则的有效性和安全性。

五.K8S访问控制

5.1角色权限设计

角色名称 权限范围
‌开发人员‌ - 项目配置(测试环境)
- 查看指定Namespace日志
‌运维工程师‌ - 节点SSH访问
- Pod生命周期管理
审计员‌ - 只读所有资源
‌部门经理‌ - 读写所有资源
‌产品经理‌ - 访问认证管理

5.2相关访问管理示意图

image.png

5.2.1身份认证入口:

位置:顶层,表示所有访问的起点。
内容:集成IDaas等认证方式,由产品经理配置。
连接:指向产品经理角色,表示认证策略的管理职责。

5.2.2角色与权限分配:

产品经理:管理RBAC策略,定义各角色权限。
部门经理:作为仲裁者,处理策略冲突并审批紧急变更。
开发/运维/审计员:通过RBAC策略引擎获得对应权限。

5.2.3操作与流程:

开发人员:通过修改K8s配置,手动触发CI/CD流水线。
运维工程师:提交防火墙规则变更计划,需部门经理审批后实施。
审计员:独立查看审计日志,无写入权限。