我在GKE上有一个LoadBalancer类型的服务,它指向运行nginx的GKE部署。我的nginx将所有超时设置为10分钟,但在收到响应之前必须等待处理的HTTP/HTTPS请求在30秒后因500个错误而被切断。我的设置:
http {
proxy_read_timeout 600s;
proxy_connect_timeout 600s;
keepalive_timeout 600s;
send_timeout 600s;
}
显然,在LoadBalancer的某个地方有30秒的默认设置。
在浏览了大量文档之后,我在Google上只找到了一个步骤,其中概述了如何在GKE使用的类型为LoadBalancer的服务上设置具有超时的后端服务负载平衡器入口,但找不到如何在该服务上实现这一点。我还查看了1.7版的所有Kubernetes文档(我们使用的是1.8.7-gke.1),没有任何关于设置超时的内容。是否有可以添加到yaml文件的设置来html" target="_blank">执行此操作?
如果有帮助的话,我为AWS找到了以下内容,这似乎是我在GKE上需要的:
annotations:
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
截至2021 4月,您可以通过GKE/GCE配置实现这一点。以下是说明。实际上,您创建了一个类似于以下内容的后端配置资源:
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: my-backendconfig
spec:
timeoutSec: 40
connectionDraining:
drainingTimeoutSec: 60
(kubectl应用-fmy-backendconfig.yaml
)
然后使用注释将其连接到您的GKE服务资源:
apiVersion: v1
kind: Service
metadata:
name: my-service
labels:
purpose: bsc-config-demo
annotations:
cloud.google.com/backend-config: '{"ports": {"80":"my-backendconfig"}}'
cloud.google.com/neg: '{"ingress": true}'
spec:
type: ClusterIP
selector:
purpose: bsc-config-demo
ports:
- port: 80
protocol: TCP
targetPort: 8080
(kubectl应用-fmy-service.yaml
)
如果您愿意,可以将BackendConfig资源(和服务)放置在yaml中具有元数据命名空间指定的命名空间中。
metadata:
namespace: my-namespace
到目前为止,您无法从YAML文件中执行此操作。
目前有一个开放的功能请求,我建议您订阅并遵循:
他们已经在2016年讨论了这一变化:问题。
“特定用例:GCE后端的默认超时为30秒,这对于某些长请求来说是不够的。我希望能够控制每个后端的超时。”
然而,我建议您查看Google云文档的这一部分,该部分专门讨论可配置的响应超时。
更新检查问题,因为他们正在取得进展
我知道18天前有一个v1.0.0版本。这就是你所说的“nicksardo”的主要重构的完成吗?在LB关闭连接之前,是否可以配置连接的空闲时间?更新上述问题现已解决,此处提供了设置超时(和其他后端服务设置)的文档:https://cloud.google.com/kubernetes-engine/docs/how-to/configure-backend-service
试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv
我是微服务的新手。(学习阶段)。我有一个问题。我们在云中部署微服务。(例如 AWS)。云已经提供了负载平衡和日志。我们还在Spring Boot中实现了负载平衡(功能区)和日志(Rabbit MQ和Zipkin)。这两种实现有什么区别?我们两者都需要吗?有些人可以回答这些问题吗? 提前感谢。
目标:将弹性/静态IP分配给负载平衡器(LB),以服务于处理DNS(端口53)、HTTPS(端口443)、HTTP(端口80)的EC2实例。 需要静态IP来正确配置DNS记录(即A记录)。需要在后端/服务器上终止TLS,以提供无限制的 经典的负载平衡器允许自定义安全规则,并允许在EC2实例上终止SSL。问题是静态IP不能分配给经典LB,只能分配给其中的单个实例,这无法平衡负载。 要分配静态IP,我
如何在L7上的GKE上为GRPC服务进行负载平衡(通过HTTP/2 TLS进行入口)? 我知道我可以选择使用L4(TCP层)来配置具有“LoadBalancer”类型的服务。但是我想知道我是否可以通过HTTP/2 TLS使用入口L7负载平衡。 我还看到“GKE不支持HTTP/2到后端”(打开https://cloud.google.com/load-balancing/docs/backend-s
我正在DigitalOcean上使用CoreOs和库伯内特斯构建一个容器集群,我已经看到,为了向世界公开Pod,您必须使用Type: LoadBalancer创建一个服务。我认为这是最佳解决方案,因此您不需要在nginx或haagent等kubernetes之外添加外部负载均衡器。我想知道是否可以使用DO的浮动IP创建它。
我在GKE上有两个kubernetes集群:一个是处理与外部世界交互的公共集群,另一个是仅供内部使用的私有集群。 公共集群需要访问私有集群上的一些服务,我已经通过内部负载平衡器向公共集群的pod公开了这些服务。目前,我正在为负载平衡器指定要使用的内部IP地址,并将这些IP传递给公共POD,但我更希望负载平衡器可以选择任何可用的内部IP地址,并且我可以将其DNS名称传递给公共POD。 内部负载均衡器