# primihub-deploy **Repository Path**: primihub/primihub-deploy ## Basic Information - **Project Name**: primihub-deploy - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-13 - **Last Updated**: 2026-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PrimiHub Deploy PrimiHub Deploy 是一套完整的隐私计算平台部署解决方案,提供多种部署方案以满足从开发测试到生产环境的不同需求。 ## 项目简介 PrimiHub 是一个开源的隐私计算平台,支持多方安全计算(MPC)、联邦学习、隐私求交(PSI)等隐私计算技术。本项目提供了完整的自动化部署工具,帮助用户快速搭建 PrimiHub 平台。 ## 核心特性 - **多种部署方案**:支持 Docker 单机部署、Docker 多机部署、Kubernetes 集群部署 - **一键部署**:提供自动化脚本,简化部署流程 - **完整的技术栈**:集成 MySQL、Redis、Nacos、RabbitMQ、Loki 等组件 - **可扩展架构**:支持多机构、多节点的分布式部署 - **日志监控**:可选集成 Loki + Grafana 日志聚合系统 - **高可用支持**:Kubernetes 方案支持完整的高可用架构 ## 系统架构 ![PrimiHub](./k8s-deploy/primihub.svg) ### 核心组件 | 组件 | 版本 | 功能说明 | |-----|------|---------| | **PrimiHub Node** | 1.7.0 | MPC 计算执行引擎,执行多方安全计算任务 | | **PrimiHub Meta** | 1.7.0 | 元数据服务,负责任务管理和数据协调 | | **Application** | 1.7.0 | 业务应用层,处理联邦学习等任务 | | **Gateway** | 1.7.0 | API 网关,提供 REST 接口 | | **Web** | 1.7.0 | Web 管理界面 | | **MySQL** | 5.7 | 数据库,存储业务数据 | | **Redis** | 7 | 缓存和消息存储 | | **Nacos** | 2.0.4 | 配置中心和服务发现 | | **RabbitMQ** | 3.6.15 | 消息队列,任务分发 | | **Loki** | latest | 日志聚合系统(可选) | ## 系统要求 ### 基础要求 - **CPU 指令集**:必须支持 `avx2` 和 `sse4_1` 指令集(可通过 `lscpu | grep avx2` 验证) - 不支持这些指令集的机器无法运行 MPC 任务 - **TEE 功能**(可选):如需使用 TEE 功能,服务器的 CPU 和主板需要支持 SGX 功能,可参考[这里](https://help.aliyun.com/document_detail/208095.html)验证 ### 硬件配置 - **最低配置**:8 核 CPU,16GB 内存,40GB 磁盘空间 - **推荐配置**:16 核 CPU,32GB 内存,100GB 磁盘空间 ### 操作系统 - CentOS 7 - Ubuntu 18.04+(推荐) ## 部署方案对比 | 特性 | Docker 单机 | Docker 多机 | Kubernetes | K8s 安装工具 | |-----|------------|------------|------------|-------------| | **适用场景** | 开发、学习、演示 | 生产分布式部署 | 大规模生产环境 | K8s 集群初始化 | | **部署难度** | ⭐ 简单 | ⭐⭐ 中等 | ⭐⭐⭐ 中等 | ⭐ 简单 | | **可扩展性** | 低 | 中 | 高 | 中 | | **高可用** | ❌ 不支持 | ✅ 基础支持 | ✅ 完整 HA | ✅ 完整 HA | | **机器数量** | 1 台 | 3 台+ | 3 台+ | 3 台+ | | **网络要求** | 本地 | 需要互通 | 需要互通 | 需要互通 | | **资源利用率** | 低 | 中 | 高 | 中 | | **部署时间** | < 10 分钟 | < 20 分钟 | < 30 分钟 | 1-2 小时 | ## 快速开始 ### 方案 1:Docker 单机部署(推荐新手) 适合快速体验和本地开发测试,在一台机器上模拟 3 个机构的完整系统。 ```bash cd docker-all-in-one bash deploy.sh ``` 部署完成后,访问以下地址(默认用户名/密码:admin/123456): - 机构 1:http://机器IP:30811 - 机构 2:http://机器IP:30812 - 机构 3:http://机器IP:30813 详细说明请参考 [Docker 单机部署文档](./docker-all-in-one/README.md) ### 方案 2:Docker 多机/异地部署 适合生产环境的分布式部署,每台机器运行一个独立机构的完整节点。 ```bash # 在第一台机器上 cd docker-one-in-one bash deploy.sh # 在第二台机器上 cd docker-one-in-one sed -i "s/node0/node1/g" docker-compose.yaml bash deploy.sh # 在第三台机器上 cd docker-one-in-one sed -i "s/node0/node2/g" docker-compose.yaml bash deploy.sh ``` **网络要求**:3 台机器需要开放 `9099`、`30080`、`50050` 端口供其他节点访问。 部署完成后,访问:http://各机器IP:30080 详细说明请参考 [Docker 多机部署文档](./docker-one-in-one/README.md) ### 方案 3:Kubernetes 部署 适合大规模生产环境,支持高可用和弹性扩展。 ```bash cd k8s-deploy export NAMESPACE=your-namespace ./primihub_deploy.sh ``` 部署完成后,访问以下地址: - 机构 1:http://K8s集群任意节点IP:30801 - 机构 2:http://K8s集群任意节点IP:30802 - 机构 3:http://K8s集群任意节点IP:30803 详细说明请参考 [Kubernetes 部署文档](./k8s-deploy/README.md) ### 方案 4:自动化安装 K8s 集群 如果还没有 Kubernetes 集群,可以使用本项目提供的 Ansible 自动化脚本快速安装。 ```bash cd install_k8s # 编辑 hosts.ini 配置集群节点信息 ansible-playbook -i hosts.ini install_k8s.yaml -e "@online_vars.yaml" -k -K ``` 详细说明请参考 [K8s 安装文档](./install_k8s/README.md) ## 主要功能 ### 隐私计算能力 - **多方安全计算(MPC)**:支持多方数据联合计算,数据不出域 - **联邦学习**:支持横向联邦学习和纵向联邦学习 - **隐私求交(PSI)**:支持多方数据求交集,不泄露原始数据 - **匿踪查询**:支持隐私保护的数据查询 ### 管理功能 - **Web 管理平台**:可视化的任务管理和监控界面 - **多机构管理**:支持多个机构协作进行隐私计算 - **节点管理**:灵活配置和管理计算节点 - **任务调度**:支持任务的创建、调度和监控 - **数据管理**:支持数据集的注册和管理 ### 日志与监控 - **Loki 日志聚合**:可选集成 Loki + Grafana 日志系统 - **实时日志查看**:在管理界面实时查看任务执行日志 - **任务监控**:监控任务执行状态和进度 ## 部署后验证 ### 检查服务状态 **Docker 部署**: ```bash docker-compose ps -a ``` **Kubernetes 部署**: ```bash kubectl get pod -n ``` 所有服务应该处于 `Running` 或 `healthy` 状态。 ### 访问管理平台 1. 在浏览器访问对应的管理平台地址 2. 使用默认账号登录:`admin` / `123456` 3. 参考[快速试用管理平台](https://docs.primihub.com/docs/quick-start-platform)进行操作 ## 可选功能:安装 Loki 日志插件 如需在页面上显示日志功能,需要安装 Loki 的 Docker 插件: ```bash # 安装 Loki Docker 插件 docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions # 配置 Docker daemon cat > /etc/docker/daemon.json <