希望在创建或重新启动作为滚动更新或扩展的一部分时清除有关pods资源消耗的信息。
look to understand.
- pod是否会在创建时消耗其请求中指定的整个资源?
- 或者它将只消耗启动所需的量,这将小于其请求。
我们目前面临AKS集群的一些问题,当新的pod被创建作为部署的一部分或作为扩展的一部分时,pod会产生高cpu使用率警报(超过95%),但我们的应用程序是轻量级的,需要更少的cpu来实现其功能。
寻找这个的解,
-
我们是否可以考虑CPU初始化周期/初始准备,这将使pod在启动期间管理其资源消耗?
-
我们是否可以在扩展活动或pod启动期间的任何策略窗口或稳定窗口期间调整hpa设置?
这实际上取决于资源类型和您指定的实际值。
由于你的问题集中在CPU上,我也会。
首先要考虑的是您的pod最终属于哪种类https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/
pod一般不会"消费"。任何cpu资源,在其中运行的软件都可以,所以cpu的情况严格依赖于您正在运行的软件。有些会有cpu繁重的启动阶段(哦,我对k8s中的Java有什么影响),在这种情况下,cpu的初始峰值将是完全正常的,但是,由于缩放逻辑,初始峰值,如果在pod处于就绪状态之前发生,将被丢弃用于HPA缩放的计算。
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
所以我的最终建议是正确设置readinessProbe。