使用离线 RPM 包部署
本文介绍如何在 Red Hat 系 Linux 系统(RHEL、Rocky Linux、AlmaLinux、CentOS 8/9)中,使用离线 RPM 包部署 API7 网关。下载安装包后,安装过程不再依赖外网,只需要 tar、systemctl、文本编辑器和浏览器即可完成部署。
架构
API7 网关由控制面(CP)和数据面(DP)组成:
| 层级 | 职责 | 说明 |
|---|---|---|
| 控制面 | 管理与控制 | 配置网关、签发数据面证书、下发配置、汇聚可观测性数据,并将配置、用户和审计日志等持久化到 PostgreSQL |
| 数据面 | 流量处理 | 运行 APISIX/OpenResty,执行路由和插件;数据面本身无状态,配置由控制面同步 |
评估环境可以将控制面和数据面部署在同一台主机上;生产环境建议将二者部署在不同主机上。本文用“CP 主机”表示控制面主机,用“DP 主机”表示数据面主机;在单机部署中二者指同一台机器。
控制台必需组件
要构建功能完整的控制面,控制台管理界面和 API 需要下列组件。前三项是离线 RPM 包提供的 systemd 服务,其余为需要自行准备的依赖项。
| 组件 | 来源 | 是否必需 | 用途 |
|---|---|---|---|
api7ee-dashboard | api7ee-dashboard RPM,内置 Node.js | 是 | 控制面后端,通过 7443 提供 UI/API |
api7ee-console | 同一个 api7ee-dashboard RPM,通过内置 Node.js 运行 | 是 | Web 控制台 UI,由 api7ee-dashboard 服务反向代理(3000 → 7443) |
api7ee-dp-manager | api7ee-dp-manager RPM | 是 | 向网关下发配置、签发数据面 mTLS 证书、处理心跳(7943) |
| PostgreSQL | 外部依赖;单机 RPM 快速 试用 会安装本地 PostgreSQL,生产环境建议自行提供 | 是 | 持久化配置、用户、审计日志等数据 |
| Prometheus | 外部依赖,不包含在安装包中 | 指标场景必需 | 接收 dp-manager remote-write 的网关指标,用于控制台分析视图,见安装 Prometheus |
| Jaeger | 外部依赖,不包含在安装包中 | 链路追踪场景必需 | 保存请求 Trace,用于控制台在线调试和追踪视图(dp-manager → OTLP Collector 4318;控制台 → 查询界面 16686) |
api7-gateway | api7-gateway RPM | 数据面必需 | 处理 API 流量;控制台本身不依赖它启动,但需要它才能管理实际流量,见接入数据面网关 |
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | RHEL / Rocky / AlmaLinux / CentOS 8 或 9,x86_64 |
| 初始化系统 | systemd,所有组件都以 systemd 服务运行。容器化评估时也必须让 systemd 作为 PID 1 运行,见方法 A |
| 权限 | root 或 sudo |
| PostgreSQL | 13+,推荐 15;可部署在本机、独立主机或云托管数据库中 |
| 控制面端口 | 7443(控制台/API,对外访问)、7943(数据面 mTLS 接入,需对 DP 主机开放)、7900/7901/7080/7081(本地/内部) |
| 数据面端口 | 9080/9443,用于业务 流量入口 |
| 网络 | 可完全离线;如控制面和数据面分离,DP 主机必须能访问 CP 主机的 7943,控制面必须能访问 PostgreSQL 的 5432 |
获取安装包
先确认目标主机的 CPU 架构和 Red Hat 系发行版主版本:
uname -m # CPU 架构 → <arch>,例如 x86_64
cat /etc/os-release # 查看 PLATFORM_ID,例如 "platform:el9" → <dist>,例如 el9
安装包文件名格式为 api7-ee-rpm-<version>-<dist>.<arch>.tar.gz,例如 api7-ee-rpm-3.10.1-el9.x86_64.tar.gz。
| 字段 | 来源 | 示例 |
|---|---|---|
<version> | 要安装的 API7 网关版本 | 3.10.1 |
<dist> | /etc/os-release 中 PLATFORM_ID 对应的 Red Hat 系主版本 | el8、el9 |
<arch> | uname -m 输出的 CPU 架构,目前安装包为 x86_64 | x86_64 |
替换以下变量后下载匹配的安装包:
export API7EE_VERSION="3.10.1" # 要安装的版本
export API7EE_DIST="el9" # 来自 /etc/os-release 的 PLATFORM_ID
export API7EE_ARCH="x86_64" # 来自 uname -m
curl -fSLO "https://run.api7.ai/api7-ee/api7-ee-rpm-${API7EE_VERSION}-${API7EE_DIST}.${API7EE_ARCH}.tar.gz"
如果目标主机处于隔离网络,请在可访问互联网的机器上下载 .tar.gz,再复制到目标主机。只有下载步骤需要联网,解压和安装可以完全离线完成。
安装包内容
| 文件 | 类别 | 内容 |
|---|---|---|
api7ee-dp-manager-*.rpm | 控制面 | 数据面管理、配置下发和证书签发服务 |
api7ee-dashboard-*.rpm | 控制面 | 控制面后端和 Web 控制台,默认 TLS 7443,内置 Node.js;一个包提供 api7ee-dashboard 和 api7ee-console 两个 systemd 服务 |
api7-gateway-*.rpm | 数据面 | 网关运行时,包含 APISIX 和内置 OpenResty |
which-*.rpm、libxslt-*.rpm 等 | 系统依赖 | 网关运行所需的少量系统库,已随包提供 |
install.sh | 安装脚本 | 一次性离线安装上述 RPM |
quickstart.sh | 评估辅助脚本 | 单机评估一键启动脚本,见方法 A |
每个软件包都自带运行时(Node.js / OpenResty),不依赖主机预装的 nodejs 或 openresty,因此离线安装不会影响主机上已有软件。
安装包不包含以下外部依赖和部署制品:
- PostgreSQL:控制面的唯一外部依赖,详情参阅系统要求和准备 PostgreSQL。
- 许可证:安装完成后在控制台中上传。
- 数据面证书:由控制台按网关组自动签发,详情参阅接入数据面网关。
部署流程概览
标准部署路径按以下顺序执行:
- 准备 PostgreSQL。
- 安装 RPM 包。
- 配置并启动控制面。
- 初始化控制台:修改默认密码并上传许可证。
- 接入数据面网关:使用控制台签发的证书和连接参数配置 DP 主机上的网关。
- 在控制台确认实例状态为
Healthy。