gpt4 book ai didi

kubernetes - 在 kubernetes 中自动缩放期间某些请求失败

转载 作者:行者123 更新时间:2023-12-04 19:26:03 25 4
gpt4 key购买 nike

我在 microk8s 上设置了一个 k8s 集群,并将我的应用程序移植到它。我还添加了一个水平自动缩放器,它根据 CPU 负载添加 pod。自动缩放器工作正常,当负载超出目标时,它会添加 pod,一段时间后我移除负载时,它会杀死 pod。

问题是我在同一时刻注意到自动缩放器正在创建一些请求失败的新 pod:

POST Response Code :  200
POST Response Code : 200
POST Response Code : 200
POST Response Code : 200
POST Response Code : 200
POST Response Code : 502
java.io.IOException: Server returned HTTP response code: 502 for URL: http://10.203.101.61/gateway/compile
POST Response Code : 502
java.io.IOException: Server returned HTTP response code: 502 for URL: http://10.203.101.61/gateway/compile
POST Response Code : 200
POST Response Code : 502
java.io.IOException: Server returned HTTP response code: 502 for URL: http://10.203.101.61/gateway/compile
POST Response Code : 502
java.io.IOException: Server returned HTTP response code: 502 for URL: http://10.203.101.61/gateway/compile
POST Response Code : 200
POST Response Code : 200
POST Response Code : 200
POST Response Code : 200
POST Response Code : 200
POST Response Code : 200
POST Response Code : 200
POST Response Code : 200

我想知道这是什么原因以及如何解决?

更新:
我认为最好向您提供有关我的设置的更多信息:

流量来自集群外部,但 k8s 节点和生成请求的程序都在一台机器上,因此没有网络问题。有一个自定义的 nginx 组件,它不做负载平衡,只是充当反向代理并将流量发送到相应的服务。

我进行了另一项测试,这给了我更多信息。我运行了相同的基准测试,但这次我没有将请求发送到反向代理 (nginx),而是使用了该特定服务的 IP 地址,并且在自动缩放器完成其工作并启动多个 pod 时,我没有失败的请求。我不确定是 Nginx 还是 k8s 的问题?

最佳答案

当新 pod 产生时,Kubernetes 立即开始将流量重定向到它们。
但是,通常情况下,pod 需要一些时间才能启动并开始运行(就绪)。

为了防止这种情况发生,您可以定义一个 Readiness Probe为你的 pod 。
K8s 将定期调用您提供的就绪端点上的 pod,以确定此 pod 是否正常运行并准备好接受请求。
K8s 不会将流量重定向到 Pod,直到就绪端点根据 type of probe 返回成功结果(检查“探头类型”部分)。

关于kubernetes - 在 kubernetes 中自动缩放期间某些请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56899429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com