系统架构
# 详细系统架构方案
# 一、整体架构设计
核心目标:构建高可用、高性能的家庭实验室环境,集成虚拟化、容器化、存储和网络功能,支持开发测试和家庭应用。
架构特点:分层设计、硬件资源最大化利用、网络隔离、数据高可靠。
# 二、硬件与系统分配方案
设备 | 系统 | 角色 | 关键配置 |
---|---|---|---|
浪潮服务器 | Proxmox VE (PVE) | 虚拟化宿主机 + K8s Master | - 128GB ECC内存分配:PVE系统16GB,3台Rocky Linux VM各32GB(共96GB) - ZFS存储池:12盘位RAID-Z2,分配128GB内存专用ARC缓存 - PCIe直通:LSI2308直通卡、万兆网卡 |
闲置台式机 | Rocky Linux 9 | K8s Worker + GPU计算节点 | - 64GB内存全分配 - GPU直通:N卡用于转码 - M.2 NVMe系统盘 + SATA数据盘(EXT4/Btrfs) |
蜗牛星际 | 多系统切换 | 测试/备份节点 | - 飞牛NAS:媒体轻存储 + Docker测试 - Ubuntu:K8s边缘节点测试 - 黑群晖:冷备验证(非生产) |
工控机 | ImmortalWrt | 主路由 + 网络服务 | - 科学上网插件(PassWall) - AdGuard Home DNS过滤 - tailscale VPN服务器 |
交换机 | - | 核心网络枢纽 | - VLAN划分:K8s集群(VLAN10)、家庭设备(VLAN20)、测试环境(VLAN30) - 万兆光口直连浪潮服务器 |
# 三、Kubernetes集群设计
集群架构:
- Master节点:3台Rocky Linux VM(部署于浪潮PVE)
- Worker节点:
- 浪潮PVE虚拟机(4台,8核/32GB/100GB)
- 闲置台式机(裸金属,6核/64GB/1TB)
- 网络方案:
- CNI插件:Calico(支持Network Policies)
- 服务暴露:MetalLB(BGP模式) + Nginx Ingress
- 存储方案:
- 关键服务存储:
- 数据库:Longhorn提供高可用块存储
- 媒体库:直接NFS共享挂载
- 关键服务存储:
# 四、存储架构
存储类型 | 硬件 | 文件系统 | 用途 | 冗余策略 |
---|---|---|---|---|
主存储 | 浪潮12盘位 | ZFS | 虚拟机磁盘/K8s持久化卷/媒体库 | RAID-Z1 |
高速缓存 | 浪潮2×SSD | ZFS L2ARC | 读加速 | Mirror镜像 |
本地存储 | 台式机6×SATA | Btrfs | GPU计算临时数据 | RAID0 |
备份存储 | 蜗牛4×HDD | EXT4 | Rsync增量备份/ZFS快照归档 | 无(冷备) |
# 五、网络架构
关键配置:
- VLAN规划:
VLAN10
(K8s集群):192.168.10.0/24
,禁止外部访问VLAN20
(家庭设备):192.168.20.0/24
,限速策略VLAN30
(测试环境):192.168.30.0/24
,完全隔离
- 高性能链路:
- 浪潮服务器 ⇄ 交换机:万兆DAC直连线(10Gbps)
- 台式机 ⇄ 交换机:2.5G铜缆(PCIe扩展卡)
- 无线网络:
- 华硕AP绑定VLAN20,双频SSID分离(IoT设备限速5Mbps)
# 六、核心服务部署
服务 | 部署位置 | 功能说明 |
---|---|---|
Proxmox VE集群 | 浪潮服务器 | 管理所有虚拟机,HA迁移策略(当Worker超载时自动迁移VM) |
K8s基础服务 | 浪潮VM + 台式机 | - Prometheus + Grafana监控 - Harbor私有镜像仓库 - Velero备份 |
媒体中心 | 台式机(K8s Pod) | Plex + Jellyfin,GPU硬解转码,存储挂载/mnt/media |
智能家居 | 蜗牛星际(Docker) | Home Assistant + MQTT,VLAN30隔离 |
开发环境 | K8s集群 | GitLab + Jenkins + Registry,PVC绑定Longhorn |
网络优化 | 工控机 | AdGuard Home(拦截广告) + WireGuard(远程访问家庭Lab) |
# 七、高可用与灾备
- 虚拟化层:
- PVE HA集群:浪潮本地ZFS存储 + 台式机作为备份节点
- 虚拟机自动重启策略(故障检测周期10s)
- K8s层:
- Master节点:3节点etcd集群
- Worker故障转移:PodDisruptionBudget保障关键服务
- 数据保护:
- 每日ZFS快照(保留7天)
- Velero备份K8s状态至蜗牛星际
- 关键数据加密同步至公有云(Rclone + Crypt)
# 八、性能优化点
- ZFS调优:
# 浪潮服务器/etc/modprobe.d/zfs.conf options zfs zfs_arc_max=68719476736 # 限制ARC为64GB options zfs zfs_prefetch_disable=0 # 启用预读
1
2
3 - K8s网络:
- 启用IPVS负载均衡模式
- Pod网段(
10.244.0.0/16
)独立于物理网络
- GPU虚拟化:
# K8s DevicePlugin配置(台式机) resources: limits: nvidia.com/gpu: '1' # 共享N卡独显
1
2
3
4
# 九、安全设计
- 网络层:
- 防火墙规则:VLAN30禁止出站、VLAN10仅允许K8s节点通信
- 无线网络:WPA3加密 + MAC白名单
- 系统层:
- Rocky Linux:SELinux enforcing模式
- 所有节点:Fail2ban防暴力破解
- K8s层:
- Pod Security Policy(限制特权容器)
- Network Policy(按命名空间隔离)
# 架构验证与演进计划
- 阶段1:
- 部署PVE + K8s基础集群
- 验证ZFS存储性能
- 阶段2:
- 接入家庭媒体服务(emby硬解)
- 实现跨节点备份
- 阶段3(持续):
- 扩展边缘计算
- 瞎折腾
通过此架构,提高硬件利用率,单节点故障0服务中断,提高媒体转码性能(对比纯CPU方案)。