日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Knative 基本功能深入剖析:Knative Serving 自动扩缩容 Autoscaler

發(fā)布時(shí)間:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Knative 基本功能深入剖析:Knative Serving 自动扩缩容 Autoscaler 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Knative Serving 默認(rèn)情況下,提供了開(kāi)箱即用的快速、基于請(qǐng)求的自動(dòng)擴(kuò)縮容功能 - Knative Pod Autoscaler(KPA)。下面帶你體驗(yàn)如何在 Knative 中玩轉(zhuǎn) Autoscaler。

Autoscaler 機(jī)制

Knative Serving 為每個(gè) POD 注入 QUEUE 代理容器 (queue-proxy),該容器負(fù)責(zé)向 Autoscaler 報(bào)告用戶容器并發(fā)指標(biāo)。Autoscaler 接收到這些指標(biāo)之后,會(huì)根據(jù)并發(fā)請(qǐng)求數(shù)及相應(yīng)的算法,調(diào)整 Deployment 的 POD 數(shù)量,從而實(shí)現(xiàn)自動(dòng)擴(kuò)縮容。




算法

Autoscaler 基于每個(gè) POD 的平均請(qǐng)求數(shù)(并發(fā)數(shù))進(jìn)行擴(kuò)所容處理。默認(rèn)并發(fā)數(shù)為 100。
POD 數(shù)=并發(fā)請(qǐng)求總數(shù)/容器并發(fā)數(shù)

如果服務(wù)中并發(fā)數(shù)設(shè)置了 10,這時(shí)候如果加載了 50 個(gè)并發(fā)請(qǐng)求的服務(wù),Autoscaler 就會(huì)創(chuàng)建了 5 個(gè) POD (50 個(gè)并發(fā)請(qǐng)求/10=POD)。

Autoscaler 實(shí)現(xiàn)了兩種操作模式的縮放算法:Stable(穩(wěn)定模式)和 Panic(恐慌模式)。

穩(wěn)定模式

在穩(wěn)定模式下,Autoscaler 調(diào)整 Deployment 的大小,以實(shí)現(xiàn)每個(gè) POD 所需的平均并發(fā)數(shù)。 POD 的并發(fā)數(shù)是根據(jù) 60 秒窗口內(nèi)接收所有數(shù)據(jù)請(qǐng)求的平均數(shù)來(lái)計(jì)算得出。

恐慌模式

Autoscaler 計(jì)算 60 秒窗口內(nèi)的平均并發(fā)數(shù),系統(tǒng)需要 1 分鐘穩(wěn)定在所需的并發(fā)級(jí)別。但是,Autoscaler 也會(huì)計(jì)算 6 秒的恐慌窗口,如果該窗口達(dá)到目標(biāo)并發(fā)的 2 倍,則會(huì)進(jìn)入恐慌模式。在恐慌模式下,Autoscaler 在更短、更敏感的緊急窗口上工作。一旦緊急情況持續(xù) 60 秒后,Autoscaler 將返回初始的 60 秒穩(wěn)定窗口。

|Panic Target---> +--| 20| || <------Panic Window| |Stable Target---> +-------------------------|--| 10 CONCURRENCY| | || <-----------Stable Window| | | --------------------------+-------------------------+--+ 0 120 60 0TIME


配置 KPA

通過(guò)上面的介紹,我們對(duì) Knative Pod Autoscaler 工作機(jī)制有了初步的了解,那么接下來(lái)介紹如何配置 KPA。在 Knative 中配置 KPA 信息,需要修改 k8s 中的 ConfigMap:config-autoscaler,該 ConfigMap 在 knative-serving 命名空間下。查看 config-autoscaler 使用如下命令:

kubectl -n knative-serving get cm config-autoscaler

默認(rèn)的 ConfigMap 如下:

apiVersion: v1 kind: ConfigMap metadata:name: config-autoscalernamespace: knative-serving data:container-concurrency-target-default: 100container-concurrency-target-percentage: 1.0enable-scale-to-zero: trueenable-vertical-pod-autoscaling: falsemax-scale-up-rate: 10panic-window: 6sscale-to-zero-grace-period: 30sstable-window: 60stick-interval: 2s


為 KPA 配置縮容至 0

為了正確配置使 Revision 縮容為 0,需要修改 ConfigMap 中的如下參數(shù)。

scale-to-zero-grace-period

scale-to-zero-grace-period 表示在縮為 0 之前,inactive revison 保留的運(yùn)行時(shí)間(最小是3 0s)。

scale-to-zero-grace-period: 30s

stable-window

當(dāng)在 stable mode 模式運(yùn)行中,autoscaler 在穩(wěn)定窗口期下平均并發(fā)數(shù)下的操作。

stable-window: 60s

stable-window 同樣可以配置在 Revision 注釋中。

autoscaling.knative.dev/window: 60s

enable-scale-to-zero

保證 enable-scale-to-zero 參數(shù)設(shè)置為 true

Termination period

Termination period(終止時(shí)間)是 POD 在最后一個(gè)請(qǐng)求完成后關(guān)閉的時(shí)間。POD 的終止周期等于穩(wěn)定窗口值和縮放至零寬限期參數(shù)的總和。在本例中,Termination period 為 90 秒。

配置并發(fā)數(shù)

可以使用以下方法配置 Autoscaler 的并發(fā)數(shù):

target

target 定義在給定時(shí)間(軟限制)需要多少并發(fā)請(qǐng)求,是 Knative 中 Autoscaler 的推薦配置。

在 ConfigMap 中默認(rèn)配置的并發(fā) target 為 100。

`container-concurrency-target-default: 100`

這個(gè)值可以通過(guò) Revision 中的 autoscaling.knative.dev/target 注釋進(jìn)行修改:

autoscaling.knative.dev/target: 50

containerConcurrency

注意:只有在明確需要限制在給定時(shí)間有多少請(qǐng)求到達(dá)應(yīng)用程序時(shí),才應(yīng)該使用 containerConcurrency (容器并發(fā))。只有當(dāng)應(yīng)用程序需要強(qiáng)制的并發(fā)約束時(shí),才建議使用 containerConcurrency。

containerConcurrency 限制在給定時(shí)間允許并發(fā)請(qǐng)求的數(shù)量(硬限制),并在 Revision 模板中配置。

containerConcurrency: 0 | 1 | 2-N
  • 1: 將確保一次只有一個(gè)請(qǐng)求由 Revision 給定的容器實(shí)例處理;
  • 2-N: 請(qǐng)求的并發(fā)值限制為2或更多;
  • 0: 表示不作限制,有系統(tǒng)自身決定。


配置擴(kuò)縮容邊界(minScale 和 maxScale)

通過(guò) minScale 和 maxScale 可以配置應(yīng)用程序提供服務(wù)的最小和最大 Pod 數(shù)量。通過(guò)這兩個(gè)參數(shù)配置可以控制服務(wù)冷啟動(dòng)或者控制計(jì)算成本。

minScale 和 maxScale 可以在 Revision 模板中按照以下方式進(jìn)行配置:

spec:template:metadata:autoscaling.knative.dev/minScale: "2"autoscaling.knative.dev/maxScale: "10"

通過(guò)在 Revision 模板中修改這些參數(shù),將會(huì)影響到 PodAutoscaler 對(duì)象,這也表明在無(wú)需修改 Knative Serving 系統(tǒng)配置的情況下,PodAutoscaler 對(duì)象是可被修改的。

edit podautoscaler <revision-name>

注意:這些注釋適用于 Revision 的整個(gè)生命周期。即使 Revision 沒(méi)有被任何 route 引用,minscale 指定的最小 POD 計(jì)數(shù)仍將提供。請(qǐng)記住,不可路由的 Revision 可能被垃圾收集掉。

默認(rèn)情況

如果未設(shè)置 minscale 注釋,pods 將縮放為零(如果根據(jù)上面提到的 configmap,enable-scale-to-zero 為 false,則縮放為 1)。

如果未設(shè)置 maxscale 注釋,則創(chuàng)建的 Pod 數(shù)量將沒(méi)有上限。

基于 KPA 配置的示例

Knative 0.7 版本部署安裝可以參考:阿里云部署 Knative

我們使用官方提供的 autoscale-go 示例來(lái)進(jìn)行演示,示例 service.yaml 如下:

apiVersion: serving.knative.dev/v1alpha1 kind: Service metadata:name: autoscale-gonamespace: default spec:template:metadata:labels:app: autoscale-goannotations:autoscaling.knative.dev/target: "10"spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/autoscale-go:0.1

獲取訪問(wèn)網(wǎng)關(guān):

$ kubectl get svc istio-ingressgateway --namespace istio-system --output jsonpath="{.status.loadBalancer.ingress[*]['ip']}" 121.199.194.150

Knative 0.7 版本中獲取域名信息:

$ kubectl get route autoscale-go --output jsonpath="{.status.url}"| awk -F/ '{print $3}' autoscale-go.default.example.com


場(chǎng)景1:并發(fā)請(qǐng)求示例

如上配置,當(dāng)前最大并發(fā)請(qǐng)求數(shù) 10。 我們執(zhí)行 30s 內(nèi)保持 50 個(gè)并發(fā)請(qǐng)求,看一下執(zhí)行情況:

hey -z 30s -c 50 -host "autoscale-go.default.example.com" "http://121.199.194.150?sleep=100&prime=10000&bloat=5"

結(jié)果正如我們所預(yù)期的:擴(kuò)容出來(lái)了 5 個(gè) POD。

場(chǎng)景2:擴(kuò)縮容邊界示例

修改一下 servcie.yaml 配置如下:

apiVersion: serving.knative.dev/v1alpha1 kind: Service metadata:name: autoscale-gonamespace: default spec:template:metadata:labels:app: autoscale-goannotations:autoscaling.knative.dev/target: "10"autoscaling.knative.dev/minScale: "1"autoscaling.knative.dev/maxScale: "3" spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/autoscale-go:0.1

當(dāng)前最大并發(fā)請(qǐng)求數(shù) 10,minScale 最小保留實(shí)例數(shù)為 1,maxScale 最大擴(kuò)容實(shí)例數(shù)為 3。

我們依然執(zhí)行 30s 內(nèi)保持 50 個(gè)并發(fā)請(qǐng)求,看一下執(zhí)行情況:

hey -z 30s -c 50 -host "autoscale-go.default.example.com" "http://121.199.194.150?sleep=100&prime=10000&bloat=5"

結(jié)果如我們所預(yù)期:最多擴(kuò)容出來(lái)了 3 個(gè)POD,并且即使在無(wú)訪問(wèn)請(qǐng)求流量的情況下,保持了 1 個(gè)運(yùn)行的 POD。

結(jié)論

看了上面的介紹,是不是感覺(jué)在 Knative 中配置應(yīng)用擴(kuò)縮容是如此簡(jiǎn)單?其實(shí) Knative 中除了支持 KPA 之外,也支持K8s HPA。你可以通過(guò)如下配置基于 CPU 的 Horizontal POD Autoscaler(HPA)。

通過(guò)在修訂模板中添加或修改 autoscaling.knative.dev/class 和 autoscaling.knative.dev/metric 值作為注釋,可以將Knative 配置為使用基于 CPU 的自動(dòng)縮放,而不是默認(rèn)的基于請(qǐng)求的度量。配置如下:

spec:template:metadata:autoscaling.knative.dev/metric: concurrencyautoscaling.knative.dev/class: hpa.autoscaling.knative.dev

你可以自由的將 Knative Autoscaling 配置為使用默認(rèn)的 KPA 或 Horizontal POD Autoscaler(HPA)。

歡迎加入 Knative 交流群

總結(jié)

以上是生活随笔為你收集整理的Knative 基本功能深入剖析:Knative Serving 自动扩缩容 Autoscaler的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩无| 撸啊撸在线视频 | 国产人妻精品一区二区三区不卡 | 中文字幕国产在线 | 成人午夜视频精品一区 | 91午夜交换视频 | 久久在草| 色播基地 | 欧美黄网站 | 快色视频 | 国产又粗又猛又爽视频 | 久久久久国产精品一区二区 | 色婷婷综合网 | 国产网站在线免费观看 | 日韩人妻精品一区二区三区 | a国产精品 | 国产福利视频导航 | 香蕉av在线 | 欧美精品123区 | 亚洲熟妇av一区二区三区 | 本庄优花番号 | 久久精品欧美一区二区三区不卡 | 国产ts在线 | 欧美在线黄色 | 最新国产一区 | 国产午夜福利视频在线观看 | 国产女主播视频 | 亚洲深夜视频 | 女同二区| 国产视频第一区 | 在线尤物 | 成人精品影院 | 91看片国产 | 日本xx视频 | 免费黄色网址观看 | 精品久久久在线观看 | av影院在线播放 | 91成年版 | 美女免费av| 受虐m奴xxx在线观看 | 正在播放一区二区 | 中文精品一区二区三区 | 国产在线观看第一页 | 在线a| 在线观看中文字幕视频 | 中文字幕导航 | 一道本无吗一区 | 欧美一区二区免费 | 亚洲AV无码成人精品一区 | 91视频在线观看网站 | 免费黄色视屏 | 中文字幕第9页 | 五月天婷婷社区 | 99热这里只有精品18 | 日本一区视频在线播放 | 精品国产伦一区二区三区 | 精品一区二区三区四区视频 | 精品久久久久久无码国产 | 私密spa按摩按到高潮 | 欧美日韩中文字幕视频 | www.四虎精品 | 国产婷婷精品 | 日本在线免费观看视频 | 特级淫片裸体免费看 | 欧美日韩在线观看一区二区三区 | 精品无码一区二区三区爱欲 | 国产酒店自拍 | 狠狠综合久久 | 亚洲色图欧美日韩 | 国产午夜精品福利视频 | 中文字幕第2页 | 尤物精品视频 | 99热这里只有精品8 国产一卡二 | 亚洲高潮无码久久 | 在线免费观看一区二区 | 茄子av在线 | av五十路| 小日子的在线观看免费第8集 | 久久精品免费av | 黄色的网站在线观看 | 日韩黄视频| 国产高清一区在线 | 狠狠欧美| 好吊操视频这里只有精品 | 久久久久久久久免费 | 欧美第一网站 | 国产视频一区二区三区四区五区 | 成人影片在线 | 久久久精品国产免费爽爽爽 | 极品美妇后花庭翘臀娇吟小说 | 日本乱子伦xxxx | 国产成人啪免费观看软件 | 高清视频免费在线观看 | 91免费. | 高跟91白丝| 黄色网址av | 在线观看成人 | 国产又粗又黄又爽又硬的视频 | av一区二区三区在线观看 |