• Kubernetes
  • ingress 设置超时不生效 504 Gateway Timeout?

zackzhang 大佬,这个参数是在哪设置?先临时解决问题,我后续再研究一下

怎么复现,我本地连接一个注入sidecar应用,时间可以不受限制;跟负载大小有关系吗

    zackzhang 复现的话直接在接口中 sleep 30s,然后通过ingress暴露接口请求。我猜测现在的应该是应用还没返回,可能是k8s这边某个组件15s超时直接返回了。

      zealzhangz 我这测试一直正常,你把可以复现的详细步骤描述下(尽量详细点)。

      1. 什么应用,怎么部署
      2. 如何访问,怎么验证

        zackzhang 大佬,我新建了一个工程,在原先的项目内部署该工程,问题依旧存在。后面我新建了一个项目部署上去发现没有这个问题,然后再回去测试发现原先有问题的项目也好了。发现相关的 ReplicaSet router 更新了,目测这个还是跟istio sidecar 有关,可能之前关闭应用治理的时候这个ReplicaSet router 没更新,我本次新建触发了更新然后就好了。不过原先那个ReplicaSet 后面参数都变成0了,是个啥子意思?

          zackzhang 目前能稳定复现,开启应用治理,请求超过15s就会超时,关闭之后就正常。

          但刚开始我也关闭了应用治理,但是还是超时,这个我就解释不了了。

          你这timeout有20000的,不也有些正常的吗?

          复现的要求应该是:所有请求达到15s,应该马上被拒绝。

          另外,你如果怀疑是网关造成的,可以绕开网关,直接请求服务(service NodePort);

            zackzhang 正常的是我关闭应用治理的测试,超时的是我开启应用治理的测试,绕开网关不会超时。这些我都测试过了。这里有我测试完整的源码和k8s脚本,大佬可以自己测试一下

            # 部署好之后请求这个地址
            http://timeout-test.10.1.1.122.nip.io:31729/test/?timeout=20000

            卧槽,附件不支持gz压缩包

            大佬移步百度网盘:

            链接: https://pan.baidu.com/s/19-KICUiDoC2GmoFCHIgc6A 提取码: mewe 

            总结一下就是关闭应用治理,删除如下注解,就不会超时,超时原因还是因为 istio sidecar

             nginx.ingress.kubernetes.io/service-upstream: 'true'