TensorFusion Docs

管理许可证

管理企业版许可证和计费计划

本页说明 TensorFusion 许可证的适用范围、用量查看方式,以及在 Kubernetes、VM / 裸机环境中更新许可证的方法。

许可证适用范围

TensorFusion 核心组件以 Apache 2.0 许可证开源。对于管理 GPU / NPU 算力不超过 800 FP16 TFLOPs 的商业或非商业用途,可以免费使用,除非启用了企业版功能。

如果管理的总算力超过 800 FP16 TFLOPs,或需要企业版功能、商业支持、教育版授权,请联系 support@tensor-fusion.com 获取许可证。

许可证通常包含两部分:

  • TF_LICENSE: 许可证内容
  • TF_LICENSE_SIGN: 与许可证内容配对的签名

请不要把许可证内容或签名提交到 Git 仓库。生产环境建议使用 Kubernetes Secret、CI/CD Secret 或主机环境变量注入。

查看使用情况和配额

如果集群接入了 TensorFusion Console,可以在控制台中查看集群算力规模、GPU / NPU 使用量和授权状态。

完全本地部署时,可以先通过 Kubernetes 资源和监控指标确认当前纳管规模:

kubectl get gpupool
kubectl get gpunode,gpu -o wide

监控指标存储在 GreptimeDB 中。您可以使用内置 Grafana、自建监控面板或 GreptimeDB 查询能力查看历史用量,指标字段可参考系统指标

Kubernetes 集群更新许可证

先在 TensorFusion 系统命名空间中创建或更新许可证 Secret。下面示例使用默认命名空间 tensor-fusion-sys,如果安装时指定了其他命名空间,请替换为实际值。

kubectl -n tensor-fusion-sys create secret generic tensor-fusion-license \
  --from-literal=TF_LICENSE='<license-content>' \
  --from-literal=TF_LICENSE_SIGN='<license-signature>' \
  --dry-run=client -o yaml | kubectl apply -f -

然后将 Secret 注入到 TensorFusionCluster 的 worker Pod 模板中:

apiVersion: tensor-fusion.ai/v1
kind: TensorFusionCluster
metadata:
  name: tensor-fusion
spec:
  gpuPools:
    - name: shared
      specTemplate:
        componentConfig:
          worker:
            podTemplate:
              template:
                spec:
                  containers:
                    - name: tensorfusion-worker
                      env:
                        - name: TF_LICENSE
                          valueFrom:
                            secretKeyRef:
                              name: tensor-fusion-license
                              key: TF_LICENSE
                        - name: TF_LICENSE_SIGN
                          valueFrom:
                            secretKeyRef:
                              name: tensor-fusion-license
                              key: TF_LICENSE_SIGN

如果您不是重新应用完整的 TensorFusionCluster 清单,也可以执行下面命令后手动把上述 env 片段合并到对应的 worker 容器中:

kubectl edit tensorfusioncluster tensor-fusion

更新后观察 worker Pod 是否自动滚动:

kubectl -n tensor-fusion-sys get pod -w

如果 worker Pod 没有滚动,手动删除旧 worker Pod,让控制器按新的模板重新创建。不要删除业务 Pod。

kubectl -n tensor-fusion-sys delete pod <tensorfusion-worker-pod-name>

部分版本或企业功能可能要求 Operator 进程也能读取许可证。如果当前版本启动日志提示 Operator 缺少许可证,请按支持团队给出的 Helm values 或 Deployment env 方式,为 Operator 注入同一组 TF_LICENSE / TF_LICENSE_SIGN

VM / 裸机部署更新许可证

VM / 裸机模式下,Worker 启动前必须设置许可证环境变量:

export TF_LICENSE='<license-content>'
export TF_LICENSE_SIGN='<license-signature>'

更新许可证后,重启 tensor-fusion-worker 进程,使新的环境变量生效。

pkill tensor-fusion-worker
TF_ENABLE_LOG=1 ./tensor-fusion-worker -n native -p 12345

如果使用 systemd、supervisor 或容器方式托管 Worker,请把这两个环境变量写入对应的 Secret / Environment 配置,并重启 Worker 服务。

许可证轮换建议

  • 提前准备新的许可证内容和签名,并在低峰期更新。
  • 先更新 Secret 或主机环境变量,再滚动 Worker。
  • 更新完成后检查 Worker 启动日志和业务 Pod 是否正常拉起。
  • 保留旧许可证到新许可证验证完成后再销毁。
  • 不要在文档、Issue、日志截图中泄露许可证内容和签名。

常见问题

Worker 启动时报 License is not set

通常是 TF_LICENSETF_LICENSE_SIGN 没有传到 worker 容器 / 进程。请检查 Secret 名称、key 名称、Pod 模板路径和 Worker 实际环境变量。

提示签名不匹配

TF_LICENSETF_LICENSE_SIGN 必须成对使用。请确认没有复制错许可证内容、签名或多余空格。

超过免费额度后怎么处理?

请联系 support@tensor-fusion.com,说明集群规模、GPU / NPU 型号、使用场景和部署方式,以便申请商业版或教育版许可证。

目录