分类: 云计算
-
在 Laravel 6 队列排查过程中,针对测试环境正常但生产环境部分视图文件未执行的问题,通过模拟 Rancher 集群部署复现了缺陷。发现原因是队列任务存在文件依赖,但在集群模式下,解压缩主题包的机器与执行迁移任务的机器不一致,导致文件丢失。最终决定通过 dispatchNow 方法强制相关 Job 在同一台机器同步执行,经验证解决了文件查找失败的问题,且异常处理逻辑符合预期。
-
容器更换基础镜像后,在特定 Rancher 环境变量开启时启动失败并提示模块已加载。经排查,原因为命令行执行时重复加载了 gd、exif 和 sockets 扩展。最终通过修改 Dockerfile,利用 sed 命令从配置文件中删除对应扩展的加载项,解决了重复加载报错问题,确保了容器在环境变量开启时成功启动。
-
本文针对公有云com环境数据向csp环境迁移时程序版本不一致且无法升级的问题,介绍了实现流程。通过分析Git日志找出14个数据库迁移文件的差异,确认多出的SQL主要为表结构调整。在无法统一结构的情况下,将两个数据库导入本地,编写支持租户ID参数的迁移命令,使用事务处理并逐一迁移表。文章记录了pa_plan表的迁移过程,成功将4个租户的数据迁移至csp环境,并探讨了潜在的主键冲突及关联表处理问题。
-
针对后台关闭列表项后接口响应数据在几分钟内反复出现与消失的问题,经排查确认根源在于 Varnish 部署架构。Rancher 环境中发现运行着 3 个 Varnish 容器,由于负载均衡导致每次请求落在不同服务器,各节点缓存未同步且出现资源浪费,进而造成响应数据不一致。最终结论是现阶段缓存列表接口应配置为单机部署,若使用集群部署建议仅支持详情接口。
-
在 Rancher 环境中发现配置的环境变量在容器日志中缺失,导致配置文件内的部分变量未被替换。排查发现缺失变量前缀不同,调整前缀及配置文件命名后问题依旧。进一步检查初始化日志发现路径报错,通过修改脚本将相对路径更正为绝对路径。最终验证日志显示全部变量生效,配置文件中的变量也已成功替换。
-
在 Kubernetes 环境中遇到 504 Gateway Time-out 报错,尽管将相关参数调整为 300 秒,请求依然在 60 秒后超时。经排查,内部服务直接访问正常,但通过 NGINX 入口控制器访问时超时。最终参考官方文档在 Rancher 负载均衡的 YAML 中添加了三个 nginx.ingress 相关配置项,成功延长了超时时间,验证后请求不再报错,问题解决。
-
针对在 Rancher 2.3 版本中添加健康检查后容器无法启动的问题,经排查发现容器内部调用健康检查接口是正常的。故障表现为工作负载升级时一直处于 Upgrading 状态,Pod 状态显示为 ContainerCreating。通过先将健康检查全部设置为空以完成升级,并强制删除工作负载中的所有 Pods,之后再次重新添加健康检查配置进行升级,最终成功解决了该问题。
-
在 Rancher 升级容器时遇到数据库迁移重复执行导致报错的问题。经分析,原因是数据库迁移耗时过长致使容器初始化超时,引发健康检查失败和容器反复重启。虽然调整了就绪检测时间,但初始化部署仍报超时。检查 MySQL 发现,特定迁移记录虽不存在于迁移表,但表结构已是执行后的结果,表明迁移曾在后台完成。最终确认需进一步优化检测配置以解决初始化阶段的冲突。
-
针对 Shell 脚本运行报错 APPID unbound variable 的问题,排查发现赋值语句中包含 $APPID$ 字符串,本应保持原样却被 Shell 误判为变量。解决方法是在 $ 前添加转义字符修改为 \$APPID\$,避免 Shell 进行变量替换。验证运行后不再报错,且最终配置文件中该字符串保持原样,符合预期。
