使用Symfony和PHP-FPM的Kubernetes

sd2nnvve  于 2023-05-07  发布在  PHP
关注(0)|答案(1)|浏览(136)

我在寻求帮助,我认为这是一个重要的问题,我已经试图解决几个星期了。
我最近将我的项目升级到Symfony 5.4。然而,在将项目部署到Kubernetes集群后,php-fpm停止在pod中工作。我写了更多关于这个过程here。我立即被派去看原木、圆锥形等,但我确保这没有问题。原因如下:
事实是,为了重现问题,总是(!)需要两个条件:

  1. Symfony 5.4软件包
    1.远程Kubernetes集群。
    在所有其他情况下,问题不(!)再现。
    这意味着如果我在Kubernetes集群中将包回滚到4.4版本,一切都正常。另一方面,在没有Kubernetes集群的本地机器上,在将项目更新到5.4版本后,php-fpm也可以正常工作。两个配置是相同的,php-fpm版本是相同的。所有的东西都一模一样。由此,我得出结论,远程配置是正确的,并且Symfony软件包与已安装的fpm没有根本的不兼容性。
    我想可能没有足够的资源来启动/更新系统,但是:
  2. Composer在构建阶段更新了项目,但问题发生在部署阶段。
    1.我不认为Kubernetes集群负载太大,以至于它无法处理我的笔记本电脑可以处理的简单任务。
    1.没有来自Kubernetes的信号表明没有足够的内存或其他任何东西。集群只是忽略运行php-fpm,没有一条消息。
    那么,问题出在哪里呢?

UPD:

我可以查看pod日志,并可以看到我的entrypoint文件是如何执行的,如下所示:
1.执行所有迁移后,日志文件显示条目[OK] Already at the latest version ("App\Migrations\Version20230427064413")。由此我得出结论,迁移工作成功,没有破坏我的应用程序。
1.缓存预热成功,如日志[OK] Cache for the "prod" environment (debug=false) was successfully warmed.中的行所示
1.在给定here的入口点中,我真的没有使用$ php-fpm --test命令,但是,我可以向您保证,我以前运行过带有-t标志和--debug标志的命令,并且没有错误。日志显示NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful
1.这是我的问题,是的。
1.我的Symfony 4.4项目在完全相同的Kubernetes pod配置中运行在相同的基础映像php:8.0-fpm-alpine3.16上,从中我得出结论OPcache与PHP版本8.0兼容。然而,为了更确定,我在php.ini中注解掉了;opcache.preload=/var/www/app/var/cache/prod/srcCimple_KernelProdContainer.preload.php ;opcache.preload_user=www-data行,问题并没有消失

nzrxty8p

nzrxty8p1#

1.运行app:migrations:migrate可能会导致脚本失败(应该在initContainer中完成)。
1.运行cache:warmup可能会导致脚本失败。
1.您不必运行$ php-fpm --test来验证您的配置是否有效。
1.您更新了symfony,其中可能包含bug,这些bug只出现在云硬件上。
1.您使用JIT(OPcache),它只是不工作(8.0,8.1的问题).您可以尝试禁用opcache扩展。
尝试连接到pod并通过内置的php服务器运行项目,而不是php-fpm,如果它仍然无法运行,然后尝试更改php版本。

相关问题