跳到主要内容

私有化部署

你可以在自有基础设施中部署 AISIX 控制面,而不是使用托管服务。

私有化部署可以提供与 AISIX Cloud 相同的资源管理、网关证书签发和用量上报能力,同时让控制面数据保留在你的环境中,包括完全离线的内网环境。

AISIX 私有化部署是 API7 围绕开源 AISIX 网关提供的商业化部署形态。

请选择一种部署方式:

  • 在线部署:在主机上使用 Docker Compose 安装,或在 Kubernetes 中使用 Helm 安装。启动时会从 Docker Hub 拉取容器镜像。
  • 离线内网部署:使用包含所有必要容器镜像的离线包安装。

控制面组件

默认部署包含以下组件:

服务作用
cp-api管理组织、环境、资源和计费
dp-manager签发 mTLS 证书,并向数据面下发配置
dashboardWeb 控制台
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_URLapi.publicBaseURL面向浏览器的源站,例如 https://aisix.example.com。登录时会根据该值校验 session issuer。
AISIX_CLOUD_DPMGR_BASE_URLapi.dpmgrBaseURL数据面主机连接的 dp-manager mTLS 端点。

更新这些设置后,请使用 docker compose up -d 重新创建相关服务,或使用 helm upgrade 应用变更。

更多 Docker Compose 环境变量和 Helm values 请参见私有化部署配置

下一步

继续阅读连接托管网关,签发网关证书并接入 AISIX 网关。

如需了解环境建模和运行模式,请阅读组织与环境部署模式