Kubernetes cluster REST API error: 500 internal server error
Kubernetes cluster REST API error: 500 internal server error
我有一个使用 kubespray 部署的 k8s 集群。
使用的负载均衡器是 metalLB。
我在这个集群中部署了一个 helm chart,它在地址 10.0.8.26:50028
有一个 REST 服务
我正在向此服务发送请求:
http://10.0.8.26:50028/data/v3/authentication
http://10.0.8.26:50028/data/v3/actions
http://10.0.8.26:50028/data/v3/versions
但每次我调用端点时,它 return 的响应顺序为:
503 运输正在关闭
500 个内部服务器
500 个内部服务器
204 - 正确反应
当我调用每个端点时,相同的顺序是 returned。一旦 return 编辑了正确的响应,之后就没有错误了。但是尝试一个新的端点会 return 错误。
有人可以帮我吗?
此错误与集群中服务之间的连接有关。集群在 IPVS 模式下使用 kube-proxy。由于 IPVS 超时(在他的节点中),服务之间的连接在 900 秒后终止:
$ ipvsadm -l --timeout
Timeout (tcp tcpfin udp): 900 120 300
这意味着 tcp 连接已被另一个代理终止。
我的应用程序同时使用 grpc 协议进行某些服务之间的通信。
因此,在应用程序代码中将 grpc keepalive 和 pods 的 tcp keepalive 设置为较低值后,问题得到解决。
以下链接可能提供更多详细信息:
https://success.docker.com/article/ipvs-connection-timeout-issue
我有一个使用 kubespray 部署的 k8s 集群。 使用的负载均衡器是 metalLB。 我在这个集群中部署了一个 helm chart,它在地址 10.0.8.26:50028
有一个 REST 服务我正在向此服务发送请求:
http://10.0.8.26:50028/data/v3/authentication
http://10.0.8.26:50028/data/v3/actions
http://10.0.8.26:50028/data/v3/versions
但每次我调用端点时,它 return 的响应顺序为:
503 运输正在关闭
500 个内部服务器
500 个内部服务器
204 - 正确反应
当我调用每个端点时,相同的顺序是 returned。一旦 return 编辑了正确的响应,之后就没有错误了。但是尝试一个新的端点会 return 错误。
有人可以帮我吗?
此错误与集群中服务之间的连接有关。集群在 IPVS 模式下使用 kube-proxy。由于 IPVS 超时(在他的节点中),服务之间的连接在 900 秒后终止:
$ ipvsadm -l --timeout
Timeout (tcp tcpfin udp): 900 120 300
这意味着 tcp 连接已被另一个代理终止。 我的应用程序同时使用 grpc 协议进行某些服务之间的通信。 因此,在应用程序代码中将 grpc keepalive 和 pods 的 tcp keepalive 设置为较低值后,问题得到解决。
以下链接可能提供更多详细信息:
https://success.docker.com/article/ipvs-connection-timeout-issue