Kubernetes 当POD通常需要较低的CPU,但需要定期扩展时,如何使用K8S HPA和autoscaler
我正在尝试确定与K8S一起使用的可靠设置,以使用HPA和autoscaler扩展我的一个部署。我希望尽量减少过度投入的资源量,但允许它根据需要扩大规模 我有一个管理RESTAPI服务的部署。大多数情况下,该服务的使用率非常低(0-5米cpu)。但在一天或一周内,它的使用量会周期性地激增,达到5-10个CPU(5000m-10000m)的数量级 我的初始配置过程是:Kubernetes 当POD通常需要较低的CPU,但需要定期扩展时,如何使用K8S HPA和autoscaler,kubernetes,amazon-eks,kubernetes-pod,hpa,Kubernetes,Amazon Eks,Kubernetes Pod,Hpa,我正在尝试确定与K8S一起使用的可靠设置,以使用HPA和autoscaler扩展我的一个部署。我希望尽量减少过度投入的资源量,但允许它根据需要扩大规模 我有一个管理RESTAPI服务的部署。大多数情况下,该服务的使用率非常低(0-5米cpu)。但在一天或一周内,它的使用量会周期性地激增,达到5-10个CPU(5000m-10000m)的数量级 我的初始配置过程是: 部署:1个副本 HPA: 这是在自动缩放器运行的AWS EKS群集上运行的。所有实例都有2个CPU。目标是,随着CPU使用率
- 部署:1个副本
- HPA:
这里的最佳路径是什么?听起来您需要一个考虑实际CPU利用率的调度程序。这还不受支持 似乎有人在开发此功能:使用。另见
同时,如果CPU限制为1个核心,并且节点在高CPU利用率下自动缩放,那么如果节点的CPU限制远远大于POD的CPU限制,则听起来应该可以工作。例如,尝试使用具有4个或更多内核的节点,可能会稍微增大Pod的CPU请求?感谢您的快速响应。我很难思考为什么有4个内核会有帮助。今天我将尝试一下,但您能否进一步解释这一部分,以帮助我了解测试时需要的是什么?其想法是,节点自动缩放将在pod自动缩放需要新节点之前的某个时间进行,并希望将其安排到分配较少的节点。这是有意义的。对于您上面的评论,我还找到了对这个自定义调度程序的引用,这可能会有所帮助。我找不到任何文章确切描述如何使用自定义调度器,所以我想我还是会使用标准调度器,看看我能做些什么。您所指的自定义计划程序看起来确实是一个长期解决方案。Pod模板
schedulerName:
中有一个字段,用于应使用其他计划程序计划的Pod。我也看到了这一部分,但我没有看到任何文章展示更好的调度器以及如何安装和运行它们。如果这个方法不奏效,我会留意的。
"resources": {
"requests": {
"cpu": 0.05
},
"limits": {
"cpu": 1.0
}
}
"spec": {
"maxReplicas": 25,
"metrics": [
{
"resource": {
"name": "cpu",
"target": {
"averageValue": 0.75,
"type": "AverageValue"
}
},
"type": "Resource"
}
],
"minReplicas": 1,
...
}