Helm 安装
Helm chart 是安装 Nantian Gateway 的推荐方式。它把控制面、数据面、dashboard、RBAC、NetworkPolicy、Service、ConfigMap 和默认 GatewayClass 打包到同一个 release。
先安装 Gateway API standard CRD:
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.1/standard-install.yamlkubectl get crd gateways.gateway.networking.k8s.io你还需要 Helm 3.x,以及能访问目标集群的 kubectl。
添加 Chart 仓库
Section titled “添加 Chart 仓库”使用当前 chart 仓库地址:
helm repo add nantian-gw https://chart.nantian.devhelm repo update不要使用旧的复数形式 chart host。
默认搜索只显示稳定 chart 版本。每个 commit 生成的 snapshot chart 会以 0.2.3-<git-sha> 这类 prerelease 版本发布;需要查看或安装这些版本时加上 --devel:
helm search repo nantian-gw/nantian-gw --versions --devel使用默认值安装
Section titled “使用默认值安装”helm install nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ --create-namespace默认 release 会创建命名空间 nantian-gw、2 个控制面副本、2 个数据面副本、1 个 dashboard 副本、安装概述中列出的固定 Service,以及名为 nantian-gw 的 GatewayClass。
安装前可以先预览渲染结果:
helm template nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw > rendered.yamlhelm install nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ --create-namespace \ --dry-run以下片段与当前 chart 默认值一致。
功能模式与 Gateway API CRD
Section titled “功能模式与 Gateway API CRD”featureMode: standardgatewayAPI: installCRDs: false channel: standardfeatureMode 控制 Nantian Gateway 自身的运行时功能开关。gatewayAPI.installCRDs 控制本 Chart 是否渲染官方 Gateway API CRD。生产默认值保持 standard 运行时模式,并要求安装网关前已由平台层准备 Gateway API CRD。
全局与 GatewayClass
Section titled “全局与 GatewayClass”global: imageRegistry: "ghcr.io" imagePullSecrets: [] commonLabels: {}
gatewayClass: enabled: true controllerName: "gateway.networking.k8s.io/nantian-gw"Chart 会根据 controller name 推导默认 GatewayClass 名称,因此 gateway.networking.k8s.io/nantian-gw 会变成 nantian-gw。
controlplane: enabled: true replicas: 2 image: repository: "nantian-gw/nantian-controlplane" tag: "sha-b3b9649" pullPolicy: Always config: grpcAddr: ":18080" adminAddr: ":18081" metricsAddr: ":18082" healthProbeAddr: ":18083" features: enableExperimentalGateway: false enableAiGateway: false控制面默认 tag 固定为经过验证的不可变 sha-b3b9649 构建。
控制面 Service 拆分如下:
| Service | 端口 |
|---|---|
nantian-gw-controlplane-grpc | 18080 |
nantian-gw-controlplane-admin | 18081 |
nantian-gw-controlplane-metrics | 18082 |
dataplane: enabled: true replicas: 2 image: repository: "nantian-gw/dataplane" tag: "" pullPolicy: Always resources: requests: cpu: "250m" memory: "256Mi" limits: cpu: "2000m" memory: "1Gi" config: adminAddr: "0.0.0.0:19080" runtime: httpListenAddr: "0.0.0.0:10080" accessLogVolume: enabled: true name: access-logs mountPath: /var/log/nantian-gw sizeLimit: 256Mi数据面 Service 是 nantian-gw-dataplane-admin 和 nantian-gw-dataplane-metrics,两者 Service port 都是 19080。运行时 HTTP 流量由配置中的监听地址 0.0.0.0:10080 处理。
Dashboard
Section titled “Dashboard”dashboard: enabled: true replicas: 1 image: repository: "nantian-gw/dashboard" tag: "" pullPolicy: Always数据面和 dashboard 的 image tag 在 values.yaml 中为空;Helm 会把它们回退到 .Chart.AppVersion,当前为 0.1.0。
不需要 Web UI 时可以关闭 dashboard:
helm upgrade --install nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ --create-namespace \ --set dashboard.enabled=falseHPA、ServiceMonitor 与 NetworkPolicy
Section titled “HPA、ServiceMonitor 与 NetworkPolicy”hpa: enabled: false
serviceMonitor: enabled: false
networkPolicies: enabled: true只有在集群已安装 Prometheus Operator CRD 时,才开启 serviceMonitor.enabled。HPA 默认关闭;启用前请确认集群有 metrics-server,并且已经验证过数据面的资源 requests。
需要保留的修改请写入 values 文件:
helm upgrade --install nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ --create-namespace \ -f my-values.yaml私有镜像仓库和副本数覆盖示例:
global: imageRegistry: "registry.example.com" imagePullSecrets: - name: registry-credentials
dataplane: replicas: 4实验性 Gateway runtime 行为由 featureMode 控制。AI Gateway 仍是显式的控制面功能,并且需要 experimental 模式:
featureMode: experimentalgatewayAPI: installCRDs: true channel: experimentalcontrolplane: config: features: enableAiGateway: truegatewayAPI.installCRDs 和 gatewayAPI.channel 只控制 CRD 渲染。当需要由 Chart 渲染官方 experimental Gateway API CRD bundle 时,使用 gatewayAPI.channel: experimental。
完整的启动、CRD 和验证流程见实验功能。
验证 Release
Section titled “验证 Release”kubectl get pods -n nantian-gwkubectl get gatewayclass nantian-gwkubectl get svc -n nantian-gwhelm status nantian-gw -n nantian-gw如果数据面没有就绪,请检查它是否能连接 nantian-gw-controlplane-grpc:18080,并查看控制面和数据面日志。
升级已有 release:
helm upgrade nantian-gw nantian-gw/nantian-gw \ --namespace nantian-gw \ -f my-values.yaml删除 release:
helm uninstall nantian-gw -n nantian-gwkubectl delete namespace nantian-gwHelm uninstall 会删除 chart 管理的资源。Gateway API CRD 和你在 chart 外创建的应用资源不会被 chart uninstall 删除。