负载测试kubernetes服务(带有istio服务网格)



当负载测试通过istio进行路由的kubernetes服务时,集群中的所有服务都会变得没有响应。当正在进行负载测试的服务出现100%故障时,就会发生这种情况。

有办法防止这种情况发生吗?我们应该应用istio断路吗?

简而言之,是的。断路器模式设计用于检测端点何时响应缓慢或根本没有响应。

响应缓慢的端点尤其麻烦,因为您已经发现它可能会导致系统滞后。断路器是控制流向端点的流量的代理。如果端点出现故障或速度太慢(根据您的配置(,代理将打开与容器的电路。

使用connectionPool参数,您可以设置要挂起的请求数。如果将http1MaxPendingRequests设置为1,将maxRequestsPerConnection设置为1在处理挂起的请求之前,将拒绝除此之外的任何其他请求。

另一个有用的选项是OutlierDetection。它检测到故障实例,然后使其在预先配置的时间内不可用(有时称为睡眠窗口(。当容器处于该时间段时,它被排除在路由和负载平衡之外,并且有时间恢复,同时不会被更多请求过载。

outlierDetection:
consecutive5xxErrors: 7
interval: 5m
baseEjectionTime: 15m

上述配置要求系统每5分钟扫描一次主机,如果连续7次失败,将弹出15分钟。

最新更新