Kubernetes:公开服务时,如何更改AWS Load Balancer的默认超时60秒?

Jak*_*olý 5 timeout amazon-web-services amazon-elb kubernetes

在AWS中使用--type =“ LoadBalancer”公开服务当前会创建一个TCP级别的AWS ELB,其默认超时为60秒。除了手动查找负载平衡器并使用AWS工具重新配置之外,是否有其他方法可以更改该超时时间?(即,费力的kubectl描述服务xyz | grep“ LoadBalancer Ingress”->使用AWS API查找具有此URL的负载均衡器并设置其超时)还是使用此自动创建的ELB的好选择?

当前情况的问题是:(1)1分钟对于我们的某些服务而言太短了;(2)由于TCP(而非HTTP)级别的负载平衡,当客户端无法获得通知性错误时,达到超时(在curl的情况下:“ curl:(52)来自服务器的空回复”)

谢谢!

Buc*_*chi 9

可以使用服务上的注释在最近的 Kubernetes 版本(1.4 或更高版本?)中为 ELB 设置连接空闲超时。例如:

kubectl annotate service my-service service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout=1200
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用以下注释将负载平衡协议更改为 HTTP。

service.beta.kubernetes.io/aws-load-balancer-backend-protocol
Run Code Online (Sandbox Code Playgroud)

有关AWS ELB 的更多注释,请参阅AWS 提供商来源