安装 AISIX Enterprise
使用 Docker Compose、Helm 或离线包,在自行运维的基础设施中安装 AISIX Enterprise。请选择适合目标环境的安装方式,配置控制面端点,并在连接网关前验证部署。
AISIX Enterprise 与 AISIX Cloud 共享 AISIX Enterprise 和 Cloud 概览中描述的架构与管理模型,包括资源管理、网关证书签发、用量上报和预算执行。使用 AISIX Enterprise 时,控制面服务和数据保留在自有基础设施中,包括完全隔离的环境。
若要进行本地评估,并继续创建网关资源、发送首个 AI 请求,请改用 AISIX Enterprise 入门。
AISIX Enterprise 用于生产环境时需要商业许可证。生产部署前,请联系 API7或发送邮件至 support@api7.ai。
规划安装
根据目标基础设施和网络访问条件选择安装方式:
| 安装方式 | 目标环境 | 要求 |
|---|---|---|
| Docker Compose | 可访问互联网的主机 | Docker 与 Docker Compose V2、cURL、tar、OpenSSL,以及 Docker Hub 访问权限 |
| Helm | 可访问互联网的 Kubernetes 集群 | 可用的集群、Helm、kubectl、OpenSSL,以及 Docker Hub 访问权限 |
| 离线部署包 | 隔离网络主机 | Docker 与 Docker Compose V2、tar、OpenSSL,以及一台可以使用 cURL 下载部署包的独立机器 |
使用 Helm 安装前,请决定使用随包提供的 PostgreSQL 数据库,还是使用外部数据库。Docker Compose 和离线部署包只能使用随包数据库。还需确定公开控制台源站,以及网关要连接的数据面管理器端点。可以先使用本地端点,但在公开控制台或连接其他主机上的网关前,必须配置外部可访问的端点。
Docker Compose 默认使用宿主机端口 5432、8080 和 7944。请确保端口可用,或配置其他宿主机绑定。各组件、流量方向和建议暴露范围请参阅端口参考。
控制面组件
每种安装方式都包含以下组件:
| 服务 | 作用 |
|---|---|
cp-api | 管理组织、环境、资源和计费,处理控制台登录并提供控制台 |
dp-manager | 签发 mTLS 证书并向数据面分发配置 |
| PostgreSQL 数据库 | 共享数据存储。Docker Compose 包内置数据库;Helm 可以部署数据库或连接外部数据库。 |
控制台不是独立的服务:它的文件包含在 cp-api 镜像中,由 cp-api 在与 Admin API 相同的端口上提供。
在线和离线 Docker Compose 部署包必须使用随包提供的 PostgreSQL 16 服务。Helm Chart 可以部署随包 PostgreSQL 实例,也可以连接外部数据库。
AISIX 网关会作为数据面单独运行。数据面通过 mTLS 主动连接到 dp-manager,因此控制面不需要能够入站访问网关主机。
生产资源建议基线
以下规格是部署容量规划的起点,不是 Helm Chart 的默认值、基准测试得出的容量保证,也不是适用于所有工作负载的固定下限。请根据请求速率、请求大小、已启用的流量控制策略、网关数量以及数据保留期进行压测和调整。
在主机上使用 Docker Compose 或离线部署包
在线和离线 Docker Compose 部署包提供单主机拓扑,为每个控制面服务启动一个实例,并启动随包提供的 PostgreSQL 数据库。它们不支持外部数据库,也不提供控制面高可用所需的多主机服务配置。
生产高可用拓扑请使用 Helm,并参考下表中的实例数量。使用部署包进行评估或非高可用部署时,可以根据 CPU、内存和存储列评估主机容量。
CPU、内存和主机存储均按单个组件实例计算。主机存储是为操作系统、容器镜像、平台管理的日志以及组件本地状态预留的主机容量,不等同于 Kubernetes 中应用持久卷的容量要求。
| 组件 | CPU | 内存 | 主机存储 | 起始实例数 | 规划说明 |
|---|---|---|---|---|---|
| AISIX 网关 | 4 核 | 8–16 GB | ≥100 GB | 每个网关部署至少 3 个,建议 4 个 | 随业务流量横向扩容。高并发或启用安全护栏时从 16 GB 起步;需要保留更长时间的本地日志时,请增加主机存储。 |
cp-api | 2 核 | 4 GB | ≥32 GB | 2 | 无状态服务;将实例分布到不同故障域。 |
dp-manager | 2–4 核 | 4–8 GB | ≥32 GB | 2 | 处理配置下发、网关心跳和用量遥测;将实例分布到不同故障域。 |
| PostgreSQL | 4–8 核 | 16 GB | ≥500 GB NVMe SSD | 3 | 关键有状态组件。生产高可用部署请使用 Helm 并连接外部 PostgreSQL,例如主节点、同步备用节点和异步备用节点;根据用量事件保留期调整存储。 |
| Prometheus(可选) | 4 核 | 8–16 GB | ≥200 GB | 1–2 | 用于存储监控指标。如果已有 Prometheus,可以复用现有部署;根据指标基数和保留期调整存储。 |
对于较小的部署,cp-api、dp-manager 和 Prometheus 可以共用服务器,但必须为各组件预留 CPU 和内存,并为容器镜像和日志提供充足的共享主机容量。请将冗余实例分布到不同故障域。
Kubernetes 资源规划
在 Kubernetes 中,应按副本规划计算资源,并根据性能与容量规划单独扩缩 AISIX 网关。下列规格是容量规划建议,而不是 Chart 的默认值:
| 组件 | 单个副本 CPU | 单个副本内存 | 起始副本数 | 规划说明 |
|---|---|---|---|---|
| AISIX 网关 | 4 核 | 8–16 GB | 每个网关部署至少 3 个,建议 4 个 | 随业务流量横向扩容。高并发或启用安全护栏时从 16 GB 起步。 |
cp-api | 2 核 | 4 GB | 2 | 无状态服务;将副本分布到不同故障域。 |
dp-manager | 2–4 核 | 4–8 GB | 2 | 将副本分布到不同故障域。 |
| PostgreSQL | 4–8 核 | 16 GB | 生产高可用部署使用 3 个 | 使用外部高可用部署,而不是随包提供的单实例数据库。 |
| Prometheus(可选) | 4 核 | 8–16 GB | 1–2 | 如果已有 Prometheus,可以复用现有部署。 |
默认控制面 Helm Chart 不会为 cp-api 或 dp-manager 分配应用持久卷。容器镜像和平台管理的日志应计入 Kubernetes Node 容量,而不是作为每个 Pod 的存储要求。如果在集群中自行运行 PostgreSQL 或 Prometheus,请单独配置持久存储,并根据用量事件或指标的保留期调整容量。建议起始容量为每个 PostgreSQL 实例至少 500 GB NVMe SSD、每个 Prometheus 实例至少 200 GB。
不要将 PostgreSQL 副本放在同一故障域或共享存储上。随附的 PostgreSQL Chart 默认不提供复制数据库,请参阅高可用和外部数据库。
这些规格只覆盖 AISIX 组件,不包含上游模型推理所需的计算资源。AISIX 本身不要求 GPU。
在线部署
当主机或 Kubernetes 集群可以从 Docker Hub 拉取容器镜像时,请使用在线部署。
Docker Compose
对于已安装 Docker 和 Docker Compose 的主机,可以使用 Docker Compose。快速开始 URL 会解析到当前版本。
curl -sL "https://run.api7.ai/aisix-self-hosted/quickstart" | bash
该脚本会将部署包下载到 ./aisix-self-hosted,生成包含新密钥的 .env 文件,从 Docker Hub 拉取镜像,并启动整个服务栈。
该部署包使用随包提供的 PostgreSQL 服务,不支持外部数据库。如需使用外部 PostgreSQL 数据库,请使用 Helm 安装。
启动完成后,脚本会打印控制台 URL;首次安装时还会打印首个管理员的邮箱地址和密码。默认 URL 为 http://localhost:8080。打开控制台后,以首个管理员身份登录。
在 ./aisix-self-hosted 中管理服务栈:
./aisix-self-hosted/run.sh logs # 查看日志
./aisix-self-hosted/run.sh stop # 停止容器
./aisix-self-hosted/run.sh down # 删除容器(保留数据卷)
使用 Helm 部署到 Kubernetes
对于 Kubernetes,请从 API7 Helm 仓库安装 Chart。以下命令创建 aisix 命名空间,并在其中安装 Release:
在 OKD 上不要运行下面的命令。请改用在 OKD 上安装 AISIX Enterprise。OKD 命令会替代此安装命令,并在控制面启动前提供 PostgreSQL 安全上下文覆盖项和 Route URL。
helm repo add api7 https://charts.api7.ai
helm repo update
helm install aisix-cp api7/aisix-cp --namespace aisix --create-namespace \
--set secrets.masterKey="$(openssl rand -base64 32)" \
--set postgresql.auth.password="$(openssl rand -hex 24)" \
--set postgresql.auth.postgresPassword="$(openssl rand -hex 24)"
默认情况下,该 chart 会部署 cp-api(同时提供控制台)、数据面管理器和随包 PostgreSQL 实例。