云服务器内容精选

  • 如何保证负载伸缩的稳定性? 为了保证负载伸缩的稳定性,HPA controller设置了以下功能: 稳定窗口 在监控到指标数据达到期待值(即满足伸缩标准)时,HPA controller会在所设定的稳定窗口期内持续检测,如果检测结果显示该时间段内的指标数据持续达到期待值,才会进行伸缩。默认扩容稳定窗口时长为0秒,缩容稳定窗口时长为300秒,支持修改。在实际配置过程中,为避免服务抖动,稳定窗口的配置的原则是快速扩容,低速缩容。 容忍度 容忍度 = abs ( 当前指标值 / 期望指标值 -1 ) 其中abs为绝对值。当指标值的变动在设定的容忍度范围之内时,不会触发工作负载的弹性伸缩。U CS 负载伸缩策略默认伸缩容忍度为0.1,不支持修改。
  • 如何计算Pod扩缩数量? HPA Controller基于当前指标值和期望指标值来计算扩缩比例,再依据当前Pod数与扩缩比例计算出期望Pod数。当前Pod数与期望Pod数的计算方法如下: 当前Pod数 = 所有集群中状态为Ready的Pod数量 在计算期望Pod数时,HPA Controller会选择最近5分钟内计算所得的Pod数的最大值,以避免之前的自动扩缩操作还未完成,就直接执行新的扩缩的情况。 期望Pod数 = 当前Pod数 * ( 当前指标值 / 期望指标值 ) 例如,当以CPU利用率为扩缩容参考指标时,若当前指标值为100%,期望指标值为50%,那么按照公式计算出的期望Pod数即为当前Pod数的两倍。
  • FederatedHPA工作原理 FederatedHPA的工作原理如图1,实现流程如下: HPA Controller通过API定期查询工作负载的指标数据。 karmada-apiserver收到查询请求,会路由到之前通过 API服务 注册的karmada-metrics-adapter。 karmada-metrics-adapter收到查询请求,会查询并收集集群中工作负载的指标数据。 karmada-metrics-adapter将计算的指标数据返回至HPA Controller。 HPA Controller基于返回的指标数据计算所需的Pod扩缩数量,并保持负载伸缩的稳定性。 图1 FederatedHPA工作原理
  • 如何计算指标数据? 指标数据分为系统指标与自定义指标,计算方法如下: 系统指标 主要包括CPU利用率和内存利用率两个指标,系统指标的查询与监控依赖Metrics API。例如,您希望控制工作负载对CPU资源的利用率在合理水平,可基于CPU利用率指标为其创建FederatedHPA策略。 利用率 = 工作负载Pod的实际资源使用量 / 资源申请量 自定义指标 主要提供Kubernetes Object相关的自定义监控指标,自定义指标的查询与监控依赖Custom Metrics API。例如,您可以基于每秒请求量、每秒写入次数等其他适合工作负载的自定义指标为其创建FederatedHPA策略。