如何跟踪Kubernetes HPA的更改次数



关于Kubernetes Horizontal Autoscaler,是否有任何与特定时间段之间的变化数量相关的指标?

Kubernetes不提供这样的度量,但您可以获得k8s资源的events

Kubernetes中的事件是框架中的一个对象,它是根据其他资源(如节点、pod或容器(的更改自动生成的。

获取HPA事件的最简单方法:

$ kubectl get events | grep HorizontalPodAutoscaler
7m5s        Normal    SuccessfulRescale              HorizontalPodAutoscaler   New size: 8; reason: cpu resource utilization (percentage of request) above target
3m20s       Normal    SuccessfulRescale              HorizontalPodAutoscaler   New size: 10; reason:

$ kubectl describe hpa <yourHpaName>

但是Kubernetes事件默认在1小时后删除(这是默认的生存时间,更高的值可能需要更多的etcd资源(。因此,您必须注意并收集发生的重要事件

要做到这一点,你可以使用例如:

  • KubeWatch是一个很好的开源工具,用于观看K8s事件并将其流式传输到第三方工具和Webhook
  • EventRouter是另一个用于收集Kubernetes事件的优秀开源工具。设置Kubernetes事件很容易,其目标是将其流式传输到多个源或接收器,正如其文档中所提到的那样。然而,就像KubeWatch一样,它也不提供查询或持久性功能。您需要将其与第三方存储和分析工具连接,以获得全面的体验
  • 几乎是k8s的任何日志记录工具

另外,您可以使用官方的Kubernetes API库来开发一些简单的应用程序,用于从HPA捕捉事件。在这个答案中有一个很好的例子,说明如何自己开发一个简单的k8s监控应用程序。他们在那里监控pod的状态,但你可以很好地开发你需要的应用程序。

最新更新