生产就绪
在应用流量通过每个 AISIX 网关之前,请先为生产环境做好准备。无论网关加载独立资源还是从 AISIX Cloud 接收配置,都适用相同的运行时检查;配置方式和运维责任存在差异时,本页会明确说明。
本页提供生产基线。本节其余页面会详细说明容量、启动配置、网络安全、传输安全、配置更新和健康检查。
规划容量与可用性
请根据具有代表性的请求和响应大小、流式传输行为及已启用策略,估算每个网关实例的容量。为突发流量预留余量,不要按实测饱和点配置容量。参考基准测试和估算公式请参阅性能与容量估算。
如果流量路径必须在进程或主机故障时继续可用,请运行多个实例。将其置于负载均衡器之后,分散到服务所需的故障域,并确保每个实例收到相同的 动态资源。
基于内存的限流计数器和缓存条目只属于单个网关进程。如果限流或缓存响应必须在多个实例间保持一致,请使用共享 Redis 部署。对于连接 AISIX Cloud 的网关,请参阅高可用,了解更完整的流量和管理拓扑。
准备配置和依赖
部署副本前,请确认网关如何接收动态资源:
- 开源 AISIX 网关可以加载声明式
resources.yaml文件,并在收到SIGHUP时重新加载。 - 通过 etcd 配置的开源 AISIX 网关会监听一个 etcd 键空间。
- 连接 AISIX Cloud 的网关接收控制面投射的环境资源。
监听器、资源来源、Redis 连接和可观测性等进程设置请保留在启动配置中。不要在同一个网关上配置多个动态资源来源。
保护每个携带 Secret 的配置来源。资源文件应通过环境变量引用凭证,不要包含明文值。独立 etcd 部署需要持久化、备份、访问控制和私有网络路径。连接 AISIX Cloud 的网关需要保护证书包和运行时状态目录,并确保重启后仍然可用。
当缓存策略或限流选择 Redis 时,请将 Redis 视为运行时依赖。使用符合可用性要求的拓扑,并确认每个网关实例都指向预期的 Redis 部署。
保护运行时暴露面
只向预期调用方或网关前方的入口层暴露代理监听器。
将以下暴露面保留在私有网络中:
- 指标/状态监听器及其无需身份认证的
/metrics和/status/*路由; - 独立 etcd 端点;
- 包含模型服务提供方凭证或 AISIX Cloud 证书的文件和目录。
当 AISIX 终止 HTTPS 时,请配置监听器 TLS。为相应的管理连接配置 etcd mTLS 或 AISIX Cloud mTLS。暴露网关前,请查看网络与安全及 TLS 与 mTLS。
路由流量前验证
存活检查只能证明进程正在运行,不能证明经过授权的请求可以到达模型服务提供方。请从最窄的信号开始,逐步验证到完整请求路径。
设置代理和指标/状态 URL:
PROXY_URL="https://gateway.example.com"
METRICS_URL="http://gateway.internal.example.com:9090"
检查进程存活和流量就绪状态:
curl -i "${PROXY_URL}/livez"
curl -i "${PROXY_URL}/readyz"
检查配置和模型状态:
curl -sS "${METRICS_URL}/status/config"
curl -sS "${METRICS_URL}/status/models"
然后验证健康端点无法证明的行为:
- 使用应用将要使用的调用方 API Key 调用
GET /v1/models。 - 通过计划暴露的每个端点类型发送由模型服务提供方处理的请求。
- 在日志、指标、用量上报或已配置的导出器中找到该请求。
- 使用无效的调用方 API Key 发送请求,并确认 AISIX 将其拒绝。
请使用健康检查选择并解读运维探针。如果配置变更尚未到达代理路径,请参阅配置传播。
规划关闭与恢复
AISIX 将 SIGINT 和 SIGTERM 作为优雅关闭信号。关闭期间,它会停止接受新任务、协调监听器与后台任务关闭,并报告存活检查失败,使流量层可以移除该实例。
请为负载均衡器或编排平台留出足够时间,在进程退出前停止分配连接。终止宽限期应长于你希望保留的最长请求或流式传输时间。
记录每种部署恢复配置的方式:
- 保留并验证独立资源文件;
- 备份和恢复独立 etcd;
- 按部署设计保留 AISIX Cloud 证书包、网关身份和最近一次接受的配置。
在故障恢复真正依赖这些机制前,请测试重启和替换行为。
生产检查清单
扩大流量前,请确认:
- 容量包含余量,并运行预期数量的网关实例。
- 每个实例都使用预期的启动配置和动态资源来源。
- 需要跨实例限流或共享缓存条目时,已配置共享 Redis。
- 代理、指标/状态和配置存储暴露面具有预期的网络访问范围。
- TLS、mTLS、证书路径和运行时状态权限有效。
- 网关至少可以使用一个模型服务提供方密钥、模型别名和调用方 API Key。
- 模型别名出现在面向调用方的代理路径中。
- 使用真实模型服务提供方的请求成功。
- 日志、指标、用量上报或导出器包含验证请求。
- 关闭、替换和配置恢复已经过测试。