我的理解是,在Kubernetes中,当使用水平Pod自动分频器时,如果targetCPUUtilizationPercentage字段设置为50%,并且所有pod副本的平均CPU利用率都高于该值,则HPA将创建更多的副本。一旦平均CPU在一段时间内下降到50%以下,就会减少副本的数量。
这里是我不确定的部分:
如果一个吊舱上的CPU利用率是10%,而不是0%呢? HPA还会终止副本吗?
10%的CPU不是很多,但是由于它不是0%,所以一些任务目前正在运行在这个吊舱上。如果这是一个持久的任务(几秒钟),而HPA决定终止吊舱,该任务将不会完成。
HPA是否仅在其上的CPU利用率为0%时才终止它们,还是在它看到值低于targetCPUUtilizationPercentage时终止它们?
HPA如何决定要移除哪个吊舱?
谢谢!
发布于 2018-04-29 09:22:37
你们有两个问题,让我一个接一个地回答。第一部分--如果一个复制品中的豆荚消耗了10%,那么Kubernetes会杀死这个吊舱吗?答案是肯定的。Kubernetes并不是在观察单个的豆荚,而是在这个复制集中的所有豆荚中观察这个指标的平均值。同时,如前所述也是逐步缩小的。
问题的第二部分--当一个吊舱即将被关闭时,您的应用程序如何表现优雅,并且它仍然在满足一些请求?这可以由吊舱终止的宽限期来处理,更好的是,如果您实现了钩子 --这将允许您停止接收传入请求,但处理现有的请求。它的实现将根据您正在使用的语言运行库而有所不同,因此我不会在这里详细介绍。
最后--您应该考虑的一个场景是,如果运行PreStop的VM突然下降,您就没有机会执行钩子了!我认为应用程序需要足够的健壮来处理故障。
https://stackoverflow.com/questions/50080526
复制相似问题