91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

應用現(xiàn)代化中的彈性伸縮簡介

OSC開源社區(qū) ? 來源:享受生活的云計算工程師 ? 2023-06-05 09:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

應用現(xiàn)代化中的彈性伸縮

這兩年應用現(xiàn)代化的步伐飛快,19年我在很多企業(yè)部署虛擬化,介紹虛擬網絡和虛擬存儲。23年,這些企業(yè)都已經上了云原生或考慮云原生了。對于高流量的Web應用程序,實時數(shù)據分析,大規(guī)模數(shù)據處理、移動應用程序等業(yè)務,容器比虛擬機更適合,因為它輕量級,快速響應,可輕松移植,并具有很強的彈性伸縮能力。

為什么需要彈性伸縮呢?

?峰值負載應對:促銷活動、節(jié)假日購物季或突發(fā)事件根據需求快速擴展資源,保證應用可用性和性能。

?提高資源利用率:根據實際資源負載動態(tài)調整資源規(guī)模,避免基礎設施資源浪費,降低TCO。

?應對故障和容錯多實例部署和快速替換,提高業(yè)務連續(xù)性和可用性。

?跟隨需求變化:匹配前端的業(yè)務需求及壓力,快速調整規(guī)模,提高事件應對能力,滿足需求和期望。

Horizontal Pod Autoscaling

Kubernetes自身提供一種彈性伸縮的機制,包括Vertical Pod Autoscaler (VPA)和Horizontal Pod Autoscaler (HPA)。HPA根據 CPU 、內存利用率增加或減少副本控制器的 pod 數(shù)量,它是一個擴縮資源規(guī)模的功能特性。

HPA依賴Metrics-Server捕獲CPU、內存數(shù)據來提供資源使用測量數(shù)據,也可以根據自定義指標(如Prometheus)進行擴縮。

ffe1150a-031b-11ee-90ce-dac502259ad0.png

由上圖看出,HPA持續(xù)監(jiān)控Metrics-Server的指標情況,然后計算所需的副本數(shù)動態(tài)調整資源副本,實現(xiàn)設置目標資源值的水平伸縮。

但也有一定局限性:

?無外部指標支持。如不同的事件源,不同的中間件/應用程序等,業(yè)務端的應用程序變化及依賴是多樣的,不只是基于CPU和內存擴展。

?無法1->0。應用程序總有0負載的時候,此時不能不運行工作負載嗎?

所以就有了Kubernetes-based Event-Driven Autoscaling(KEDA)!

KEDA

KEDA基于事件驅動進行自動伸縮。什么是事件驅動?我理解是對系統(tǒng)上的各種事件做出反應并采取相應行動(伸縮)。那么KEDA就是一個HPA+多種觸發(fā)器。只要觸發(fā)器收到某個事件被觸發(fā),KEDA就可以使用HPA進行自動伸縮了,并且,KEDA可以1-0,0-1!

架構

fff9a296-031b-11ee-90ce-dac502259ad0.png

KEDA自身有幾個組件:

?Agent: KEDA激活和停止Kubernetes 工作負載(keda-operator主要功能)

? Metrics: KEDA作為一個Kubernetes指標服務器,向Horizontal Pod Autoscaler提供豐富的事件數(shù)據,從源頭上消費事件。(keda-operator-metrics-apiserver主要作用)。

? Admission Webhooks: 自動驗證資源變化,以防止錯誤配置。

? Event sources: KEDA 更改 pod 數(shù)量的外部事件/觸發(fā)源。如Prometheus、Kafka。

? Scalers: 監(jiān)視事件源,獲取指標并根據事件觸發(fā)伸縮。

? Metrics adapter:從Scalers獲取指標并發(fā)送給HPA。

? Controller: 根據Adapter提供的指標進行操作,調諧到 ScaledObject 中指定的資源狀態(tài)。Scaler根據 ScaledObject 中設置的事件源持續(xù)監(jiān)視事件,發(fā)生任何觸發(fā)事件時將指標傳遞給Metrics Adapter。Metrics Adapter調整指標并提供給Controller組件,Controller根據 ScaledObject 中設置的縮放規(guī)則擴大或縮小Deployment。

總的來說,KEDA設置一個ScaledObject,定義一個事件觸發(fā)器,可以是來自消息隊列的消息、主題訂閱的消息、存儲隊列的消息、事件網關的事件或自定義的觸發(fā)器?;谶@些事件來自動調整應用程序的副本數(shù)量或處理程序的資源配置,以根據實際負載情況實現(xiàn)彈性伸縮。

CRD

? ScaledObjects:代表事件源(如 Rabbit MQ)和 Kubernetes Deployment、StatefulSet 或任何定義 / 規(guī)模子資源的自定義資源之間的所需映射。

? ScaledJobs:事件源和Kubernetes Jobs之間的映射。根據事件觸發(fā)調整Job規(guī)模。

? TriggerAuthentications:觸發(fā)器的認證參數(shù)

? ClusterTriggerAuthentications:集群維度認證

部署KEDA

helmrepoaddkedacorehttps://kedacore.github.io/charts
helmrepoupdate
kubectlcreatenamespacekeda
helminstallkedakedacore/keda--namespacekeda

kubectlapply-fhttps://github.com/kedacore/keda/releases/download/v2.10.1/keda-2.10.1.yaml
root@node-1:/#kubectlgetall-nkeda
NAMEREADYSTATUSRESTARTSAGE
pod/keda-metrics-apiserver-7d89dbcb54-v22nl1/1Running044s
pod/keda-operator-5bb9b49d7c-kh6wt0/1Running044s
NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGE
service/keda-metrics-apiserverClusterIP10.233.44.19443/TCP,80/TCP45s
NAMEREADYUP-TO-DATEAVAILABLEAGE
deployment.apps/keda-metrics-apiserver1/11145s
deployment.apps/keda-operator0/11045s
NAMEDESIREDCURRENTREADYAGE
replicaset.apps/keda-metrics-apiserver-7d89dbcb5411145s
replicaset.apps/keda-operator-5bb9b49d7c11045s
#kubectlgetcrd|grepkeda
clustertriggerauthentications.keda.sh2023-05-11T0906Z
scaledjobs.keda.sh2023-05-11T0907Z
scaledobjects.keda.sh2023-05-11T0907Z
triggerauthentications.keda.sh2023-05-11T0907Z

KubeSphere部署KEDA

kubectleditcc-nkubesphere-system(kubesphere3.4+)
spec:
···
autoscaling:
enabled:true
···

擴展工作負載CRD

ScaledObject對象主要定義要擴展的目標對象,如Deployment、Statefulset、CRD等,Triggers部分聲明對應的觸發(fā)器,在進行這些參數(shù)設置后,一個KEDA的自定義伸縮就可以啟用了。

apiVersion:keda.sh/v1alpha1
kind:ScaledObject
metadata:
name:{scaled-object-name}
spec:
scaleTargetRef:
apiVersion:{api-version-of-target-resource}#Optional.Default:apps/v1
kind:{kind-of-target-resource}#Optional.Default:Deployment
name:{name-of-target-resource}#Mandatory.MustbeinthesamenamespaceastheScaledObject
envSourceContainerName:{container-name}#Optional.Default:.spec.template.spec.containers[0]
pollingInterval:30#Optional.Default:30seconds
cooldownPeriod:300#Optional.Default:300seconds
idleReplicaCount:0#Optional.Default:ignored,mustbelessthanminReplicaCount
minReplicaCount:1#Optional.Default:0
maxReplicaCount:100#Optional.Default:100
fallback:#Optional.Sectiontospecifyfallbackoptions
failureThreshold:3#Mandatoryiffallbacksectionisincluded
replicas:6#Mandatoryiffallbacksectionisincluded
advanced:#Optional.Sectiontospecifyadvancedoptions
restoreToOriginalReplicaCount:true/false#Optional.Default:false
horizontalPodAutoscalerConfig:#Optional.SectiontospecifyHPArelatedoptions
name:{name-of-hpa-resource}#Optional.Default:keda-hpa-{scaled-object-name}
behavior:#Optional.UsetomodifyHPA'sscalingbehavior
scaleDown:
stabilizationWindowSeconds:300
policies:
-type:Percent
value:100
periodSeconds:15
triggers:
#{listoftriggerstoactivatescalingofthetargetresource}

Demo

KEDA目前支持53種Scalers,如Kafka,Elasticsearch,MySQL,RabbitMQ,Prometheus等等。此處演示一個Prometheus和Kafka的例子。

Prometheus & KEDA

0016a396-031c-11ee-90ce-dac502259ad0.png

部署一個Web應用,使用Prometheus監(jiān)控Web應用http請求指標。為尋求演示效果,此處部署了一個有點擊,互動的Demo APP,

進入KubeSphere項目,新建一個自定義伸縮:

004bd796-031c-11ee-90ce-dac502259ad0.png

設置最小副本數(shù)為1,最大副本數(shù)為10,輪詢間隔5秒,等待時間為1分鐘:

0061c470-031c-11ee-90ce-dac502259ad0.png

KubeSphere支持Cron、Prometheus,和自定義觸發(fā)器:

0073d1e2-031c-11ee-90ce-dac502259ad0.png

觸發(fā)器設置Prometheus,設置請求為30s內的增長率總和,當閾值大于3時事件驅動觸發(fā)縮放:

009522fc-031c-11ee-90ce-dac502259ad0.png

設置一些其他設置,如資源刪除后是否恢復指本來的副本數(shù),以及擴縮策略設置:

00b49bc8-031c-11ee-90ce-dac502259ad0.png

00db94bc-031c-11ee-90ce-dac502259ad0.png

現(xiàn)在并發(fā)訪問Web App:

可以在自定義監(jiān)控看到監(jiān)控指標的變化:

00fe0e34-031c-11ee-90ce-dac502259ad0.png

Web App的副本數(shù)開始橫向擴展:

0114564e-031c-11ee-90ce-dac502259ad0.png

最終擴展到ScaledObject中定義的10個副本:

0147cefc-031c-11ee-90ce-dac502259ad0.png

在訪問停止后,可以看到監(jiān)控指標的數(shù)值在慢慢變小:

015fe794-031c-11ee-90ce-dac502259ad0.png

Deployment開始縮容:

01732070-031c-11ee-90ce-dac502259ad0.png

Kafka & KEDA

KEDA使用Kafka事件源演示的整體拓撲如下:

01876652-031c-11ee-90ce-dac502259ad0.png

打開KubeSphere應用商店,查看DMP數(shù)據庫中心

01ab7da8-031c-11ee-90ce-dac502259ad0.png

選擇Kafka,進行安裝

01c1f92a-031c-11ee-90ce-dac502259ad0.png

01d56280-031c-11ee-90ce-dac502259ad0.png

02001930-031c-11ee-90ce-dac502259ad0.png

0211fb50-031c-11ee-90ce-dac502259ad0.png

安裝好Kafka后,創(chuàng)建一個測試的Kafka Topic,Topic分區(qū)設置為5,副本設置為1:

0228a012-031c-11ee-90ce-dac502259ad0.png023d00de-031c-11ee-90ce-dac502259ad0.png

創(chuàng)建Kafka Producer服務:

025356e0-031c-11ee-90ce-dac502259ad0.png

026f627c-031c-11ee-90ce-dac502259ad0.png

向主題發(fā)送訂單:

028dd432-031c-11ee-90ce-dac502259ad0.png

02a12230-031c-11ee-90ce-dac502259ad0.png

創(chuàng)建Consumer服務:

02d2ee6e-031c-11ee-90ce-dac502259ad0.png

02e4763e-031c-11ee-90ce-dac502259ad0.png

發(fā)送新訂單看Consumer服務是否消費:

02f6b8c6-031c-11ee-90ce-dac502259ad0.png

現(xiàn)在可以來做自動伸縮了,創(chuàng)建一個ScaledObject,設置最小副本數(shù)為0,最大為10,輪詢間隔為5s,Kafka LagThreshold為10:

apiVersion:keda.k8s.io/v1alpha1
kind:ScaledObject
metadata:
name:kafka-scaledobject
namespace:default
labels:
deploymentName:kafka-consumer-deployment#RequiredNameofthedeploymentwewanttoscale.
spec:
scaleTargetRef:
deploymentName:kafka-consumer-deployment#RequiredNameofthedeploymentwewanttoscale.
pollingInterval:5
minReplicaCount:0#OptionalDefault0
maxReplicaCount:10#OptionalDefault100
triggers:
-type:kafka
metadata:
#Required
BootstrapeServers:radondb-kafka-kafka-external-bootstrap.demo:9092#Kafkabootstrapserverhostandport
consumerGroup:order-shipper#Makesurethatthisconsumergroupnameisthesameoneastheonethatisconsumingtopics
topic:test
lagThreshold:"10"#Optional.Howmuchthestreamislaggingonthecurrentconsumergroup

創(chuàng)建自定義伸縮:

031033f0-031c-11ee-90ce-dac502259ad0.png

032331d0-031c-11ee-90ce-dac502259ad0.png

03363f46-031c-11ee-90ce-dac502259ad0.png

0354b4ee-031c-11ee-90ce-dac502259ad0.png

03807728-031c-11ee-90ce-dac502259ad0.png

039664ac-031c-11ee-90ce-dac502259ad0.png

03aa0cb4-031c-11ee-90ce-dac502259ad0.png

現(xiàn)在,讓我們向隊列提交大約 100,000 條訂單消息,看看自動縮放的實際效果。你會看到隨著隊列中多余消息的增長,將會產生更多的 kafka-consumer pod。

03bdb872-031c-11ee-90ce-dac502259ad0.png

03d4b41e-031c-11ee-90ce-dac502259ad0.png

03eaeb4e-031c-11ee-90ce-dac502259ad0.png

此處我們看到最大到5個副本,沒有到10個副本,因為默認最大副本數(shù)不會超過Kafka主題分區(qū)數(shù)量,上面設置了分區(qū)為5,可以激活allowIdleConsumers: true來禁用這個默認行為。重新編輯自定義伸縮后,最大副本變化成10:

040198a8-031c-11ee-90ce-dac502259ad0.png

在無消息消費時,副本變化為0:

041a8598-031c-11ee-90ce-dac502259ad0.png






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 觸發(fā)器
    +關注

    關注

    14

    文章

    2061

    瀏覽量

    63427
  • 虛擬存儲器
    +關注

    關注

    0

    文章

    12

    瀏覽量

    8994
  • HPA
    HPA
    +關注

    關注

    1

    文章

    11

    瀏覽量

    8618
  • CRD
    CRD
    +關注

    關注

    0

    文章

    14

    瀏覽量

    4245

原文標題:應用現(xiàn)代化中的彈性伸縮

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    紅外熱像儀在在現(xiàn)代化壓鑄生產中的應用

    現(xiàn)代化壓鑄生產中,對溫度場的精確掌握已成為提升產品質量的核心環(huán)節(jié)。紅外熱像儀憑借其非接觸測溫與可視熱分布分析能力,為這一行業(yè)帶來了全新的技術解決方案。
    的頭像 發(fā)表于 01-05 09:46 ?319次閱讀

    電網現(xiàn)代化:開啟智慧能源新紀元

    (作者:是德科技高級副總裁兼首席營銷官Marie Hattar) 當前電網正承受巨大壓力:用電需求激增、部分系統(tǒng)與標準陳舊過時并亟待現(xiàn)代化改造,同時還要應對極端天氣的考驗。這三重因素將關鍵基礎設施
    的頭像 發(fā)表于 12-29 15:54 ?486次閱讀
    電網<b class='flag-5'>現(xiàn)代化</b>:開啟智慧能源新紀元

    宏集案例 | 加勒比最大石油企業(yè)如何用DataHub實現(xiàn)SCADA現(xiàn)代化與IoT設備集成?

    軟件,實現(xiàn)了對現(xiàn)有SCADA系統(tǒng)的現(xiàn)代化升級,并無縫集成了新型物聯(lián)網(IoT)油井監(jiān)測設備。關鍵價值點數(shù)據全集成:利用宏集CogentDataHub的MQTT智能代
    的頭像 發(fā)表于 12-16 17:04 ?448次閱讀
    宏集案例 | 加勒比最大石油企業(yè)如何用DataHub實現(xiàn)SCADA<b class='flag-5'>現(xiàn)代化</b>與IoT設備集成?

    云里物里定位信標助力打造現(xiàn)代化智慧醫(yī)院

    在某市第一心醫(yī)院,傳統(tǒng)的“尋路難”問題正在成為歷史。為打造現(xiàn)代化智慧醫(yī)院,該院率先引進云里物里智能硬件,構建覆蓋全院的室內導航定位系統(tǒng),以空間數(shù)字重構就醫(yī)路徑,顯著提升患者就醫(yī)便捷性。
    的頭像 發(fā)表于 10-11 16:52 ?1483次閱讀

    工業(yè)智能網關在現(xiàn)代化水產養(yǎng)殖的應用

    應對措施,這極易導致魚蝦生病甚至死亡,給養(yǎng)殖戶帶來巨大經濟損失。 隨著物聯(lián)網技術的飛速發(fā)展,其在漁業(yè)養(yǎng)殖領域的應用日益廣泛,成為推動現(xiàn)代化水產養(yǎng)殖變革的重要力量。物通博聯(lián)提供基于工業(yè)智能網關的物聯(lián)網解決方案
    的頭像 發(fā)表于 10-10 13:45 ?539次閱讀
    工業(yè)智能網關在<b class='flag-5'>現(xiàn)代化</b>水產養(yǎng)殖<b class='flag-5'>中</b>的應用

    NetApp助力對象存儲現(xiàn)代化,提升速度、可擴展性和安全性

    計。最新版本的StorageGRID將引入新功能,旨在推進人工智能計劃、提高數(shù)據安全性并實現(xiàn)企業(yè)數(shù)據基礎設施的現(xiàn)代化。 無論企業(yè)是處于數(shù)據湖現(xiàn)代化的早期階段,還是正在試驗高級人工智能應用程序,他們都需要管理并存儲激增的非結構數(shù)
    的頭像 發(fā)表于 09-11 10:41 ?571次閱讀

    無人機智能巡檢系統(tǒng):現(xiàn)代化運維的空中解決方案

    ? ? ? ?無人機智能巡檢系統(tǒng):現(xiàn)代化運維的空中解決方案 ? ? ? ?無人機智能巡檢系統(tǒng)集成先進飛行平臺、圖像識別算法、自主導航與數(shù)據分析技術,構建了一套高效、精準的巡檢解決方案。該系統(tǒng)已
    的頭像 發(fā)表于 09-10 13:23 ?820次閱讀

    微型氣象站系統(tǒng):為智慧氣象建設和應急管理體系現(xiàn)代化提供關鍵技術支撐

    微型氣象站系統(tǒng):為智慧氣象建設和應急管理體系現(xiàn)代化提供關鍵技術支撐【WX-PQX6】不僅簡化了傳統(tǒng)氣象監(jiān)測流程、降低了成本,更通過云平臺數(shù)據管理(支持多設備登錄、曲線分析、數(shù)據導出)和遠程監(jiān)控功能,推動氣象服務向智能、移動
    的頭像 發(fā)表于 08-13 14:47 ?678次閱讀
    微型氣象站系統(tǒng):為智慧氣象建設和應急管理體系<b class='flag-5'>現(xiàn)代化</b>提供關鍵技術支撐

    現(xiàn)代化智慧農業(yè)四情監(jiān)測設備方案

    現(xiàn)代化智慧農業(yè)四情監(jiān)測設備方案 柏峰【BF-NYSQ】強農固本,為推進中國式現(xiàn)代化提供基礎支撐,農穩(wěn)社稷,糧安天下。強化耕地保護和質量提升、推進農業(yè)科技力量,全方位夯實國家糧食安全根基,堅持產量產能、生產生態(tài)、增產增收一起抓,切實提高農業(yè)綜合效益和競爭力。
    的頭像 發(fā)表于 08-01 10:11 ?841次閱讀
    <b class='flag-5'>現(xiàn)代化</b>智慧農業(yè)四情監(jiān)測設備方案

    城市治理現(xiàn)代化:邊緣計算網關在智慧城管的實踐探索

    效率和居民的生活質量。藍蜂網關在智慧城管的實踐,為城市治理現(xiàn)代化提供了全新的模式。? 某城區(qū),市政設施數(shù)量龐大,僅井蓋就有上萬余個,垃圾桶、路燈等設施更是遍布大街小巷。為了實現(xiàn)對這些設施的精細化管理,部署
    的頭像 發(fā)表于 07-25 14:51 ?365次閱讀
    城市治理<b class='flag-5'>現(xiàn)代化</b>:邊緣計算網關在智慧城管<b class='flag-5'>中</b>的實踐探索

    中科創(chuàng)達推出Java應用現(xiàn)代化解決方案

    在數(shù)字轉型浪潮席卷千行百業(yè)的當下,企業(yè)應用現(xiàn)代化已成為突破增長瓶頸、重塑核心競爭力的關鍵路徑。在近日舉辦的亞馬遜云科技中國峰會上,全球領先的智能操作系統(tǒng)及端側智能產品和技術提供商中科創(chuàng)達,憑借十
    的頭像 發(fā)表于 06-28 10:34 ?1430次閱讀

    廣電計量助力廣州現(xiàn)代化產業(yè)體系高質量發(fā)展

    總經理于莉莉出席活動并作主題演講,分享檢驗檢測助力企業(yè)數(shù)智融合發(fā)展的經驗,廣電計量入選廣州市首批兩業(yè)融合優(yōu)秀案例,助力廣州現(xiàn)代化產業(yè)體系高質量發(fā)展。
    的頭像 發(fā)表于 06-12 17:11 ?935次閱讀

    四創(chuàng)電子亮相2025國氣象現(xiàn)代化建設科技博覽會

    近日,四創(chuàng)電子參加由中國氣象學會主辦的2025國氣象現(xiàn)代化建設科技博覽會。此次行業(yè)盛會在南京國際博覽中心舉辦,吸引近200家國內外知名企業(yè)齊聚,博覽會圍繞氣象防災減災、交通氣象、海洋氣象、航天氣象、能源氣象、氣象科普、人工智能等核心領域,全方位展示氣象全產業(yè)鏈的前沿技術
    的頭像 發(fā)表于 06-07 17:09 ?1311次閱讀

    時鐘緩沖器在現(xiàn)代化建設中的作用

    時鐘緩沖器作為現(xiàn)代電子技術的一項關鍵元件,其在信息建設和智能發(fā)展中所扮演的角色日益凸顯。隨著社會的不斷發(fā)展,人們對信息傳輸?shù)乃俣群蜏蚀_性要求越來越高,時鐘緩沖器以其獨有的功能,確
    的頭像 發(fā)表于 05-27 14:08 ?695次閱讀
    時鐘緩沖器在<b class='flag-5'>現(xiàn)代化建設中</b>的作用

    斑馬技術:84%決策者認為,倉儲現(xiàn)代化運營是當務之急

    準確性,降低營運成本,進而提升營運效率、優(yōu)化供應鏈管理,為傳統(tǒng)倉儲行業(yè)帶來了深刻變革與價值創(chuàng)造。 ? 斑馬技術公司發(fā)布的最新《2025 全球倉儲愿景研究報告》(以下簡稱 “《報告》”)顯示,84% 的決策者表示,現(xiàn)代化運營是當
    的頭像 發(fā)表于 05-26 07:34 ?3562次閱讀