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

时间:2016-05-02 13:20:03

标签: amazon-web-services timeout kubernetes amazon-elb

在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)来自服务器的空回复”)

谢谢!

1 个答案:

答案 0 :(得分:2)

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

kubectl annotate service my-service service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout=1200

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

service.beta.kubernetes.io/aws-load-balancer-backend-protocol

有关AWS ELB的更多注释,请参阅https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/aws/aws.go