【问题标题】:How to set timeout for gloo ingress controller如何为gloo入口控制器设置超时
【发布时间】:2020-10-24 00:08:52
【问题描述】:
我正在用 kubernetes 集群中的 gloo 入口控制器替换 nginx 入口,并希望设置响应超时。在 nginx 中有一个注释。
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
gloo-ingress-controller 中是否有类似的东西,否则我必须为此使用虚拟服务吗?
【问题讨论】:
标签:
kubernetes-ingress
nginx-ingress
gloo
【解决方案1】:
您应该与 Gloo 一起使用的唯一注释是 kubernetes.io/ingress.class: gloo,这是将 Ingress 对象标记为由特定 Ingress 控制器处理的标准方法。如果您将 Gloo 添加为集群的默认 Ingress 控制器,则此要求将消失。另外,根据documentation:
如果您需要更高级的路由功能,我们鼓励您
通过安装为 glooctl install gateway 来使用 Gloo VirtualServices。
Gloo 网关使用 Kubernetes 自定义资源而不是 Ingress
对象是配置 Ingress 的唯一方法
路由规范是使用大量特定于供应商的 Kubernetes 注释
到您的 Kubernetes 清单。
所以你应该使用VirtualService 来实现你的目标。你可以看下面的例子:
apiVersion: gateway.solo.io/v1
kind: VirtualService
metadata:
name: 'default'
namespace: 'gloo-system'
spec:
virtualHost:
domains:
- '*'
routes:
- matchers:
- prefix: '/petstore'
routeAction:
single:
upstream:
name: 'default-petstore-8080'
namespace: 'gloo-system'
options:
timeout: '20s'
retries:
retryOn: 'connect-failure'
numRetries: 3
perTryTimeout: '5s'
我希望这会有所帮助。