Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在DigitalOcean Kubernetes上运行Laravel时遇到随机偶发的504次超时_Php_Laravel_Networking_Kubernetes_Kubernetes Ingress - Fatal编程技术网

Php 在DigitalOcean Kubernetes上运行Laravel时遇到随机偶发的504次超时

Php 在DigitalOcean Kubernetes上运行Laravel时遇到随机偶发的504次超时,php,laravel,networking,kubernetes,kubernetes-ingress,Php,Laravel,Networking,Kubernetes,Kubernetes Ingress,我正在DigitalOcean kubernetes集群上运行一个Laravel应用程序。该应用程序由三个运行在三个群集节点之一上的三个POD组成,其流量通过nginx-ingres和DigitalOcean负载平衡器路由到该应用程序。该应用程序使用DigitalOcean管理的数据库作为后端,我使用Grafana/Prometheus进行监视和日志整理 每个应用程序吊舱由三个容器组成: Laravel应用程序(PHP-FPM和Nginx sidecar)-我知道将多个服务组合在一个pod中是一

我正在DigitalOcean kubernetes集群上运行一个Laravel应用程序。该应用程序由三个运行在三个群集节点之一上的三个POD组成,其流量通过
nginx-ingres
和DigitalOcean负载平衡器路由到该应用程序。该应用程序使用DigitalOcean管理的数据库作为后端,我使用Grafana/Prometheus进行监视和日志整理

每个应用程序吊舱由三个容器组成:

  • Laravel应用程序(PHP-FPM和Nginx sidecar)-我知道将多个服务组合在一个pod中是一种不好的做法,但我这样做是为了简单,直到我了解K8s体系结构。对于
    nginx
    fpm
    容器使用共享卷访问代码库,我遇到了一些主要的性能问题。由于文件必须从Docker映像复制到共享卷,因此POD需要几分钟的时间才能启动。(如果有人对此有更好的解决方案,那么我洗耳恭听!)
  • Nginx指标
  • FPM指标
  • 我正在使用Helm3/Flux部署应用程序,
    .yaml
    文件如下所示:

    入口:

    apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:{{模板“app.fullname”。}} 标签: 应用程序:{{模板“app.name”。} 图表:{{模板“app.chart”} 释放:{{.release.Name} 传统:{{.Release.Service} 注释: kubernetes.io/ingres.class:nginx nginx.ingres.kubernetes.io/proxy-body-size:“50m” 规格: tls: -主持人: -[REDACTED].com secretName:app tls 规则: -主机:{{.Values.ingres.host} http: 路径: -路径:{{.Values.ingres.path} 后端: serviceName:{{模板“app.fullname”。} servicePort:http 服务

    apiVersion:v1 种类:服务 元数据: 名称:{{模板“app.fullname”。}} 标签: 应用程序:{{模板“app.name”。} 图表:{{模板“app.chart”} 释放:{{.release.Name} 传统:{{.Release.Service} 规格: 类型:集群 端口: -港口:80 目标港:80 协议:TCP 名称:http -港口:9253 目标港:9253 协议:TCP 名称:fpmmetrics -港口:9113 目标港:9113 协议:TCP 名称:nginxmetrics 选择器: 应用程序:{{模板“app.name”。} 释放:{{.release.Name} 通过上面的配置,我可以通过公共主机名访问该站点。绝大多数情况下,网站的表现与预期相符,但如果我将其保留足够长的时间,大约十分之一的请求从未解决,并返回
    504
    。如果我在返回
    504
    之前启动刷新,页面很可能会立即加载

    我知道我没有给任何人提供足够的细节来诊断这个问题,但是我不知道从哪里开始调试这个问题。我检查了日志,没有发现异常,当站点确实加载时,它会按预期执行,这让我相信这是一个入口/网络问题

    这是我的入口控制器的统计数据,显示了
    .99
    和偶尔出现的
    504
    的缓慢响应时间

    我该如何开始诊断呢


    如前所述,您是否尝试在k8s入口中指定代理读取、发送和连接超时注释?另外,你可以看看这篇关于stackoverflow的文章,找不到任何关于digital ocean的特定内容。你有没有像前面提到的那样在k8s入口中指定代理读取、发送和连接超时注释?另外,你可以看看这篇关于stackoverflow的文章,找不到任何关于digital ocean的具体内容。