现象
用户在K8s部署的FastGPT私有部署版本4.9中,遇到工作流时间插件的时间获取异常问题。通过在线调用时间插件时,获取的时间正确;但通过对话接口/api/v1/chat/completions调用同一工作流中的时间插件时,获取的时间比正确值差8小时。用户已在容器内设置TZ=Asia/Shanghai环境变量,且勾选了K8s部署的同步主机时间选项,但该配置未生效。仅包含时间插件的工作流也存在同样问题。
可能原因
结合问题表现与配置信息,可能的原因包括:容器内配置的时区环境变量未被工作流运行环境正确加载;K8s部署时勾选的同步主机时间配置未实际生效;对话接口调用工作流的运行环境时区与在线调用的环境时区不一致;时间插件的时间获取逻辑未正确读取系统时区。
排查步骤
- 进入工作流运行的容器,执行
date命令,查看当前系统显示的时间与时区,确认是否与预期的Asia/Shanghai时区一致。 - 检查K8s部署配置中勾选的同步主机时间选项,确认该配置已正确同步到对应Pod的运行环境中。
- 对比在线调用与对话接口调用时的工作流运行容器,确认两者的时区配置是否存在差异。
- 查看时间插件的代码逻辑,确认其时间获取方式是否依赖系统时区配置。
解决与验证
解决方法:确保容器内的TZ=Asia/Shanghai环境变量被正确加载,可通过重启相关Pod使配置生效;重新应用K8s部署配置,确认同步主机时间的选项已正确应用到Pod中;检查对话接口调用的运行环境,确保其时区配置与在线调用的环境一致。 验证方法:分别通过在线调用和/api/v1/chat/completions接口调用包含时间插件的工作流,确认两次获取的时间均与当前北京时间一致,无8小时偏差。