首页 > 其他分享 >Serverless平台knative第十章如何应用pod频繁抖动

Serverless平台knative第十章如何应用pod频繁抖动

时间:2023-10-07 21:02:02浏览次数:33  
标签:Serverless panic percentage 窗口期 并发 knative Pod Panic pod

负载变动频繁时,Knative可能会因为响应负载变动而导 致频繁创建或销毁Pod实例

为避免服务规模“抖动” ,AutoScaler支持两种扩缩容模 式

Stable稳定模式
在稳定模式中,KPA会在默认的稳定窗口期(默认为60秒)内计算Pod的平均并发数。根据这个平均并发数,KPA会调整Pod的数量,以保持稳定的负载水平。请求平均数(平均并发数)及每个Pod的目标并发数计算 Pod数


Panic恐慌模式

短期内收到大量请求时,将启用Panic模式 ,十分之一窗口期(6秒)的平均并发数 ≥ 2*单实例目标并发 数

进入Panic模式60秒后,系统会重新返回Stable模式

在恐慌模式中,KPA会在恐慌窗口期(默认为6秒)内计算Pod的平均并发数。恐慌窗口期=稳定窗口期*panic-window-percentage(panic-window-percentage取值是0~1,默认是0.1)。当请求突然增加导致当前Pod的使用率超过恐慌窗口百分比时,KPA会快速增加Pod的数量以满足负载需求。

在KPA中,弹性生效的判断是基于恐慌模式下计算得出的Pod数量是否超过恐慌阈值(PanicThreshold)。恐慌阈值=panic-threshold-percentage/100,panic-threshold-percentage默认为200,即恐慌阈值默认为2。


kubectl edit cm config-autoscaler -n knative-serving
stable-window: 60s
panic-threshold-percentage: "10"
panic-window-percentage: "10"
  • panic-threshold-percentage配置项表示Panic模式的并发阈值百分比。默认为10,表示当窗口期内的平均并发数达到目标并发数的10%时触发Panic模式。
  • panic-window-percentage配置项表示Panic模式的窗口期百分比。默认为10,表示Panic模式的窗口期为目标窗口期的10%。

标签:Serverless,panic,percentage,窗口期,并发,knative,Pod,Panic,pod
From: https://blog.51cto.com/yht1990/7742600

相关文章

  • Serverless平台knative第九章配置文件介绍
    knative配置文件[root@ip-172-17-11-227~]#kubectlgetcm-nknative-servingNAMEDATAAGEconfig-autoscaler12d2hconfig-defaults12d2hconfig-deployment22d2hconfig-domain22d2h......
  • knative serving 域名映射
    创建应用hello-world.yamlapiVersion:serving.knative.dev/v1kind:Servicemetadata:name:helloworld-gonamespace:knative-demospec:template:spec:containers:-image:ghcr.dockerproxy.com/knative/helloworld-go:latestenv......
  • Serverless平台knative第八章流量管理
    准备环境创建一个服务两个版本[root@ip-172-17-11-227~]#catblue.yamlapiVersion:serving.knative.dev/v1kind:Servicemetadata:name:demoappspec:template:metadata:name:demoapp-01spec:containers:#-image:gcr.io/knative......
  • Serverless平台knative第六章配置最大并发数及更新操作讲解
    并发数配置apiVersion:serving.knative.dev/v1kind:Servicemetadata:name:hellospec:template:metadata:name:hello-world-002spec:containerConcurrency:10#单个pod允许的最大并发数,超过将扩容containers:#-image:gcr......
  • P6223 PODJELA
    2023.10.616:46luogusolution一道不错的树上背包题。为了方便,我们先让拿到的钱减去给定值。那么此时因为要使所有农民的值\(\ge0\)而每个节点只能通过它的祖先和其他的而非其子树节点沟通,所以我们先对于每个子树,让其所有非根值\(\ge0\)求最小次数。这样参数还不够,那我......
  • knative所有服务域名及单域名配置方法
    为所有服务配置域名kubectleditconfigmapconfig-domain-nknative-servingapiVersion:v1data:yht.com:""#写你要配置的域名查看域名在创建完应用之后会自动创建域名默认域名格式为:kservice名字+命名空间+二级域名。可修改,下面会给出教程[root@ip-172-17-11......
  • Serverless平台knative第三章部署
    社区版部署环境准备 事先准备Kubernetes集群用于部署knative 选定isitio用来路由和治理流量需要部署的Knative组件 Serving Eventing Kn(KnativeCLI)环境要求 单节点的Kubernetes集群,需要至少有6个CPU核心,6G内存和30G磁盘空间 多节点的Kubernetes集群,每个......
  • Serverless平台knative第四章资源创建
    应用创建  创建和使用KnativeService资源方式有两种:    knservice<sub_command>      资源配置文件      群组:serving.knative.dev/v1       template <Object>用于创建或更新configuation,任何更新,都将创建新的Revision......
  • Go每日一库之128:podinfo(k8s微服务模板)
    项目介绍官方Github:PodinfoPodinfo是一个用Go制作的小型web应用程序,它展示了在Kubernetes中运行微服务的最佳实践。它已实现的技术指标(截选自官方README.md):里面每一项技术指标的实现方式,其实都可以拿出来单独讲好久,相关理论也有好多。这里我只是讲针对这个项......
  • k8s版本v1.24,kubectl top pod 报错:error: Metrics API not available
    k8s版本:v1.24.4kubectltoppod报错:error:MetricsAPInotavailable报错Readinessprobefailed:HTTPprobefailedwithstatuscode:500vimcustom-resources.yamlapiVersion:v1kind:ServiceAccountmetadata:labels:k8s-app:metrics-servername:metrics......