跳转到内容
⚠️ 警告:Nantian Gateway 目前仍处于开发阶段,不适用于生产环境

实验功能

Nantian Gateway 提供一些默认关闭的实验功能。这些 API 可用于测试 AI 路由、token policy、Wasm 扩展和实验性 Gateway API policy,但它们的 schema 和运行时行为可能变化。

范围Helm value默认值作用
Chart 运行时模式featureModestandard渲染 standard 或 experimental 的 Nantian Gateway 运行时集成点。
Gateway API CRD 渲染gatewayAPI.installCRDsfalse控制 Chart 是否渲染官方 Gateway API CRD。
Gateway API CRD 通道gatewayAPI.channelstandard启用 CRD 渲染时选择官方 standardexperimental bundle。
控制面 AI Gatewaycontrolplane.config.features.enableAiGatewayfalse在同时设置 featureMode: experimental 时启用 AIService 支持。

featureMode: experimental 会渲染实验性 Gateway runtime 集成点。gatewayAPI.installCRDsgatewayAPI.channel 只控制 CRD 渲染。AI Gateway 仍需显式开启:同时设置 featureMode: experimentalcontrolplane.config.features.enableAiGateway: true

创建 experimental-values.yaml

featureMode: experimental
gatewayAPI:
installCRDs: true
channel: experimental
controlplane:
config:
features:
enableAiGateway: true

安装或升级时应用:

Terminal window
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 用户应编辑或替换 base 清单生成的 ConfigMap。gateway/deploy/kubernetes/base/kustomization.yaml 使用:

  • gateway/configs/controlplane/config.yaml
  • gateway/configs/dataplane/config.yaml

实验性功能开关位于控制面配置中。Kustomize overlay 可以使用这个片段:

features:
enableExperimentalGateway: true
enableAiGateway: true

优先使用 overlay,不要直接在 base 文件里做不可追踪的修改。

核心资源如 GatewayHTTPRoute 需要标准 Gateway API CRD。实验资源还需要对应 CRD:

  • 用于 BackendLBPolicy 的 Gateway API experimental CRD。
  • gateway base manifest 中的 Nantian CRD:
    • aiservices.gateway.nantian.dev
    • tokenpolicies.gateway.nantian.dev
    • wasmplugins.gateway.nantian.dev

Nantian CRD 是 gateway.nantian.dev/v1alpha1 下的 namespaced 扩展资源。BackendLBPolicygateway.networking.k8s.io/v1alpha2 下的 Gateway API experimental 资源。

先检查 CRD:

Terminal window
kubectl get crd aiservices.gateway.nantian.dev
kubectl get crd tokenpolicies.gateway.nantian.dev
kubectl get crd wasmplugins.gateway.nantian.dev
kubectl get crd backendlbpolicies.gateway.networking.k8s.io

再通过日志检查运行配置:

Terminal window
kubectl logs -n nantian-gw deploy/nantian-gw-controlplane --tail=100
kubectl logs -n nantian-gw deploy/nantian-gw-dataplane --tail=100

缺少 CRD 会导致资源创建失败。控制面 feature flag 关闭时,资源可能不会注册到 manager scheme,或者 AI gateway 资源不会被接受。

CRD 和 flag 准备好后,请创建符合当前 schema 的资源。AIServiceTokenPolicyWasmPluginBackendLBPolicy 示例见自定义与实验资源