私有化部署
你可以在自有基础设施中部署 AISIX 控制面,而不是使用托管服务。
私有化部署可以提供与 AISIX Cloud 相同的资源管理、网关证书签发和用量上报能力,同时让控制面数据保留在你的环境中,包括完全离线的内网环境。
AISIX 私有化部署是 API7 围绕开源 AISIX 网关提供的商业化部署形态。
请选择一种部署方式:
- 在线部署:在主机上使用 Docker Compose 安装,或在 Kubernetes 中使用 Helm 安装。启动时会从 Docker Hub 拉取容器镜像。
- 离线内网部署:使用包含所有必要容器镜像的离线包安装。
控制面组件
默认部署包含以下组件:
| 服务 | 作用 |
|---|---|
cp-api | 管理组织、环境、资源和计费 |
dp-manager | 签发 mTLS 证书,并向数据面下发配置 |
dashboard | Web 控制台 |
| PostgreSQL 数据库 | 共享数据存储,默认随部署包提供,也可以配置为外部数据库 |
Docker Compose 和离线部署包当前包含 PostgreSQL 16。
AISIX 网关会作为数据面单独运行。数据面通过 mTLS 主动连接到 dp-manager,因此控制面不需要能够入站访问网关主机。
控制面启动后,请按照连接托管网关签发网关证书,并接入 AISIX 网关。
在线部署
当主机或 Kubernetes 集 群可以从 Docker Hub 拉取容器镜像时,请使用在线部署。
Docker Compose
对于已安装 Docker 和 Docker Compose 的主机,可以使用 Docker Compose。快速开始 URL 会解析到当前版本。
curl -sL "https://run.api7.ai/aisix-ee/quickstart" | bash
该脚本会将部署包下载到 ./aisix-ee,生成包含新密钥的 .env 文件,从 Docker Hub 拉取镜像,并启动整个服务栈。
启动完成后,脚本会打印 Dashboard URL。默认 URL 为 http://localhost:8080。打开 Dashboard 后,创建第一个管理员账号。
在 ./aisix-ee 中管理服务栈:
./aisix-ee/run.sh logs # 查看日志
./aisix-ee/run.sh stop # 停止容器
./aisix-ee/run.sh down # 删除容器(保留数据卷)
使用 Helm 部署到 Kubernetes
在 Kubernetes 中,可以从 API7 Helm 仓库安装 chart:
helm repo add api7 https://charts.api7.ai
helm repo update
helm install aisix-cp api7/aisix-cp \
--set secrets.masterKey="$(openssl rand -base64 32)" \
--set secrets.betterAuthSecret="$(openssl rand -base64 48)" \
--set postgresql.auth.password="$(openssl rand -hex 24)" \
--set postgresql.auth.postgresPassword="$(openssl rand -hex 24)"
默认情况下,该 chart 会部署核心 API、数据面管理器、Dashboard 和随包 PostgreSQL 实例。
如果需要使用已有数据库,请先准备外部数据库和角色。然后将 postgresql.builtin=false 禁用随包 PostgreSQL chart,并配置顶层 externalDatabase.* 值。
如需在本地查看默认 chart values,请运行:
helm show values api7/aisix-cp
Chart 源码和 values 发布在 api7/api7-helm-chart 仓库中。
请使用 URL 安全的数据库密码,例如通过 openssl rand -hex 24 生成的值。数据库密码会嵌入 postgres:// 连接 URL 中,openssl rand -base64 生成的 +、/、= 等字符可能破坏 URL。
离线内网部署
对于无法访问镜像仓库的主机,请使用离线部署包。离线包包含所有必要的容器镜像。
离线包 URL 会解析到当前版本。
在可以访问互联网的机器上下载部署包:
curl -fSL "https://run.api7.ai/aisix-ee/aisix-ee-offline-latest.tar.gz" \
-o aisix-ee-offline-latest.tar.gz
将部署包传输到离线主机,然后启动服务栈:
tar -xzf aisix-ee-offline-latest.tar.gz
cd aisix-ee
./run.sh
启动脚本会执行以下操作:
- 加载内置容器镜像
- 生成包含新密钥的
.env文件 - 在无互联网访问的情况下启动服务栈
- 启动完成后打印 Dashboard URL
默认 Dashboard URL 为 http://localhost:8080。
离线包还包含模型价格快照,使用量和预算计算可以在不访问 models.dev 的情况下初始化。首次启动时,控制面会从该快照写入模型价格目录。如需改用在线价格,请从 api 服务中移除 AISIX_CLOUD_PRICESYNC_SNAPSHOT_PATH,并重新创建服务栈。价格目录相关设置请参见私有化部署配置。
配置外部访问
在将控制面暴露到本地主机或集群之外之前,请配置公开 Dashboard 源站和数据面管理器端点。
对于 Docker Compose,请编辑 .env。对于 Kubernetes,请更新 Helm values:
| Docker Compose 设置 | Helm value | 作用 |
|---|---|---|
AISIX_CLOUD_PUBLIC_BASE_URL | api.publicBaseURL | 面向浏览器的源站,例如 https://aisix.example.com。登录时会根据该值校验 session issuer。 |
AISIX_CLOUD_DPMGR_BASE_URL | api.dpmgrBaseURL | 数据面主机连接的 dp-manager mTLS 端点。 |
更新这些设置后,请使用 docker compose up -d 重新创建相关服务,或使用 helm upgrade 应用变更。
更多 Docker Compose 环境变量和 Helm values 请参见私有化部署配置。
下一步
继续阅读连接托管网关,签发网关证书并接入 AISIX 网关。