实验功能
Nantian Gateway 提供一些默认关闭的实验功能。这些 API 可用于测试 AI 路由、token policy、Wasm 扩展和实验性 Gateway API policy,但它们的 schema 和运行时行为可能变化。
Feature Flags
Section titled “Feature Flags”| 范围 | Helm value | 默认值 | 作用 |
|---|---|---|---|
| Chart 运行时模式 | featureMode | standard | 渲染 standard 或 experimental 的 Nantian Gateway 运行时集成点。 |
| Gateway API CRD 渲染 | gatewayAPI.installCRDs | false | 控制 Chart 是否渲染官方 Gateway API CRD。 |
| Gateway API CRD 通道 | gatewayAPI.channel | standard | 启用 CRD 渲染时选择官方 standard 或 experimental bundle。 |
| 控制面 AI Gateway | controlplane.config.features.enableAiGateway | false | 在同时设置 featureMode: experimental 时启用 AIService 支持。 |
featureMode: experimental 会渲染实验性 Gateway runtime 集成点。gatewayAPI.installCRDs 和 gatewayAPI.channel 只控制 CRD 渲染。AI Gateway 仍需显式开启:同时设置 featureMode: experimental 和 controlplane.config.features.enableAiGateway: true。
使用 Helm 开启
Section titled “使用 Helm 开启”创建 experimental-values.yaml:
featureMode: experimentalgatewayAPI: installCRDs: true channel: experimentalcontrolplane: config: features: enableAiGateway: true安装或升级时应用:
helm upgrade --install nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ --create-namespace \ -f experimental-values.yaml重启后的 Pod 会读取渲染后的 ConfigMap。rollout 后请查看日志,确认 release 使用了预期 feature mode 和控制面配置。
使用 Kustomize 开启
Section titled “使用 Kustomize 开启”Kustomize 用户应编辑或替换 base 清单生成的 ConfigMap。gateway/deploy/kubernetes/base/kustomization.yaml 使用:
gateway/configs/controlplane/config.yamlgateway/configs/dataplane/config.yaml
实验性功能开关位于控制面配置中。Kustomize overlay 可以使用这个片段:
features: enableExperimentalGateway: true enableAiGateway: true优先使用 overlay,不要直接在 base 文件里做不可追踪的修改。
所需 CRD
Section titled “所需 CRD”核心资源如 Gateway 和 HTTPRoute 需要标准 Gateway API CRD。实验资源还需要对应 CRD:
- 用于
BackendLBPolicy的 Gateway API experimental CRD。 - gateway base manifest 中的 Nantian CRD:
aiservices.gateway.nantian.devtokenpolicies.gateway.nantian.devwasmplugins.gateway.nantian.dev
Nantian CRD 是 gateway.nantian.dev/v1alpha1 下的 namespaced 扩展资源。BackendLBPolicy 是 gateway.networking.k8s.io/v1alpha2 下的 Gateway API experimental 资源。
先检查 CRD:
kubectl get crd aiservices.gateway.nantian.devkubectl get crd tokenpolicies.gateway.nantian.devkubectl get crd wasmplugins.gateway.nantian.devkubectl get crd backendlbpolicies.gateway.networking.k8s.io再通过日志检查运行配置:
kubectl logs -n nantian-gw deploy/nantian-gw-controlplane --tail=100kubectl logs -n nantian-gw deploy/nantian-gw-dataplane --tail=100缺少 CRD 会导致资源创建失败。控制面 feature flag 关闭时,资源可能不会注册到 manager scheme,或者 AI gateway 资源不会被接受。
使用这些 API
Section titled “使用这些 API”CRD 和 flag 准备好后,请创建符合当前 schema 的资源。AIService、TokenPolicy、WasmPlugin 和 BackendLBPolicy 示例见自定义与实验资源。