色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

應用現代化中的彈性伸縮簡介

OSC開源社區 ? 來源:享受生活的云計算工程師 ? 2023-06-05 09:19 ? 次閱讀

應用現代化中的彈性伸縮

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

為什么需要彈性伸縮呢?

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

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

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

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

Horizontal Pod Autoscaling

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

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

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

由上圖看出,HPA持續監控Metrics-Server的指標情況,然后計算所需的副本數動態調整資源副本,實現設置目標資源值的水平伸縮。

但也有一定局限性:

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

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

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

KEDA

KEDA基于事件驅動進行自動伸縮。什么是事件驅動?我理解是對系統上的各種事件做出反應并采取相應行動(伸縮)。那么KEDA就是一個HPA+多種觸發器。只要觸發器收到某個事件被觸發,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提供豐富的事件數據,從源頭上消費事件。(keda-operator-metrics-apiserver主要作用)。

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

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

? Scalers: 監視事件源,獲取指標并根據事件觸發伸縮。

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

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

總的來說,KEDA設置一個ScaledObject,定義一個事件觸發器,可以是來自消息隊列的消息、主題訂閱的消息、存儲隊列的消息、事件網關的事件或自定義的觸發器。基于這些事件來自動調整應用程序的副本數量或處理程序的資源配置,以根據實際負載情況實現彈性伸縮。

CRD

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

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

? TriggerAuthentications:觸發器的認證參數

? 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部分聲明對應的觸發器,在進行這些參數設置后,一個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監控Web應用http請求指標。為尋求演示效果,此處部署了一個有點擊,互動的Demo APP,

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

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

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

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

KubeSphere支持Cron、Prometheus,和自定義觸發器:

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

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

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

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

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

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

現在并發訪問Web App:

可以在自定義監控看到監控指標的變化:

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

Web App的副本數開始橫向擴展:

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

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

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

在訪問停止后,可以看到監控指標的數值在慢慢變小:

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數據庫中心

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后,創建一個測試的Kafka Topic,Topic分區設置為5,副本設置為1:

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

創建Kafka Producer服務:

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

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

向主題發送訂單:

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

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

創建Consumer服務:

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

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

發送新訂單看Consumer服務是否消費:

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

現在可以來做自動伸縮了,創建一個ScaledObject,設置最小副本數為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

創建自定義伸縮:

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

現在,讓我們向隊列提交大約 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個副本,因為默認最大副本數不會超過Kafka主題分區數量,上面設置了分區為5,可以激活allowIdleConsumers: true來禁用這個默認行為。重新編輯自定義伸縮后,最大副本變化成10:

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

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

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






審核編輯:劉清

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

    關注

    14

    文章

    2000

    瀏覽量

    61139
  • 虛擬存儲器
    +關注

    關注

    0

    文章

    12

    瀏覽量

    8782
  • HPA
    HPA
    +關注

    關注

    1

    文章

    9

    瀏覽量

    8342
  • CRD
    CRD
    +關注

    關注

    0

    文章

    14

    瀏覽量

    4015

原文標題:應用現代化中的彈性伸縮

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

收藏 人收藏

    評論

    相關推薦

    南方智能構建現代化水庫運行管理矩陣

    南方測繪集團旗下南方智能積極落實水利部構建現代化水庫運行管理矩陣工作部署,以水庫運行管理實際業務需求為導向,利用數字孿生、物聯網、大數據、云計算等技術,深度融合水庫現有各類監測數據、運行臺賬等數據
    的頭像 發表于 12-13 10:36 ?158次閱讀

    雷曼光電助力校園現代化建設

    近日,雷曼光電為巴基斯坦University of Wah報告廳打造了大尺寸、高分辨率的雷曼超高清大屏,為學校日常開展課堂授課、學術交流和校園活動等提供強有力的硬件和技術支持,助力校園現代化建設,也為客戶帶來了顯著的應用價值。
    的頭像 發表于 11-26 15:14 ?242次閱讀

    智慧營區綜合管理平臺:現代化進程的重要產物

    智慧華盛恒輝營區綜合管理平臺是軍事領域現代化進程的重要產物,它集成了物聯網、大數據、云計算、人工智能等前沿技術,為軍隊提供了一個全方位、全天候、智能的營區管理與服務解決方案。以下是對智慧營區綜合
    的頭像 發表于 11-22 14:06 ?130次閱讀

    ESD應用手冊:汽車版現代化接口保護概念、測試和仿真

    電子發燒友網站提供《ESD應用手冊:汽車版現代化接口保護概念、測試和仿真.pdf》資料免費下載
    發表于 11-19 14:38 ?0次下載

    智慧農業平臺:推動農業現代化的科技力量

    隨著信息技術的飛速發展,智慧農業平臺正逐步成為推動農業現代化、提高農業生產效率和質量的重要力量。智慧農業平臺集成了物聯網、大數據、云計算、人工智能等多種先進技術,為農業生產和管理提供了全方位、準確
    的頭像 發表于 10-15 16:25 ?296次閱讀

    華為云徐峰:AI 賦能應用現代化,加速軟件生產力躍升

    2024 年 9 月 19 日,在華為全聯接大會 2024 的“AI 賦能應用現代化,加速軟件生產力躍升”論壇上,華為云 PaaS 服務產品部部長徐峰發表了主題演講,介紹了未來應用智能演進趨勢
    的頭像 發表于 10-14 09:45 ?517次閱讀
    華為云徐峰:AI 賦能應用<b class='flag-5'>現代化</b>,加速軟件生產力躍升

    中海達助力水文現代化建設

    為深入貫徹創新驅動發展戰略,加快推進黃河流域(片)水文現代化建設,日前,黃河水文協同創新中心正式成立。黃委有關部門,黃河流域(片)省區水文部門,新疆生產建設兵團水利局,有關高校、科研院所等權威專家及企業代表參加會議。中海達作為黃河水文協同創新中心首批成員之一出席會議。
    的頭像 發表于 09-02 17:07 ?508次閱讀

    現代化設備管理系統:為企業發展注入強大動力

    現代化設備管理系統在企業發展起到了重要作用,包括多學科理論融合、專業與協作以及信息管理。它能夠實現對設備的實時監測、故障預警、維護計
    的頭像 發表于 09-02 10:35 ?475次閱讀
    <b class='flag-5'>現代化</b>設備管理系統:為企業發展注入強大動力

    高標準農田灌區信息建設如何促進農業現代化

    高標準農田灌區信息建設如何促進農業現代化 高標準農田灌區信息建設是推動農業現代化進程的關鍵一環,它通過集成現代信息技術與傳統農業灌溉管理
    的頭像 發表于 08-30 17:40 ?517次閱讀
    高標準農田灌區信息<b class='flag-5'>化</b>建設如何促進農業<b class='flag-5'>現代化</b>

    四創電子應邀參加2024國氣象現代化建設科技博覽會

    5月15日-17日,四創電子應邀參加了由中國氣象學會主辦的2024國氣象現代化建設科技博覽會(簡稱CMHE2024)。
    的頭像 發表于 05-19 09:45 ?482次閱讀
    四創電子應邀參加2024<b class='flag-5'>中</b>國氣象<b class='flag-5'>現代化</b>建設科技博覽會

    Optiver使用AMD企業級產品組合賦能數據中心現代化

    AMD宣布,Optiver – 在超過100家交易所擁有交易業務的全球領先做市商 – 正在廣泛采用AMD高性能計算引擎,通過構建一個用作組織基礎的現代化基礎設施,幫助其進一步履行改善金融市場的使命。
    的頭像 發表于 05-13 09:59 ?377次閱讀

    農業現代化:UWB模塊為農業領域帶來的效益和便利

    隨著科技的進步和農業現代化的推進,超寬帶(UWB)技術正逐漸在農業領域發揮重要作用。UWB模塊作為UWB技術的核心組成部分,具有高精度、實時性強的特點,為農業生產提供了新的技術手段和解決方案。本文將
    的頭像 發表于 04-12 15:02 ?461次閱讀

    訊維融合處理器助力醫院構建現代化醫療監控系統

    隨著醫療技術的不斷進步和醫院管理要求的日益嚴格,構建一套高效、穩定、智能的醫療監控系統已成為醫院現代化建設的迫切需求。在這一背景下,訊維融合處理器以其卓越的性能和獨特的功能,為醫院構建現代化醫療監控
    的頭像 發表于 04-01 16:31 ?321次閱讀
    訊維融合處理器助力醫院構建<b class='flag-5'>現代化</b>醫療監控系統

    車載控系統:構建現代化城市治安指揮車的核心技術支撐

    隨著城市進程的加速和社會治安形勢的日益復雜,城市治安管理面臨著前所未有的挑戰。為了有效應對這些挑戰,現代化城市治安指揮車應運而生。而在這其中,訊維車載控系統憑借其卓越的技術性能和適應性,成為
    的頭像 發表于 03-06 16:18 ?352次閱讀

    為微電子設施現代化提供資金

    來源:半導體芯科技編譯 美國商務部宣布向 BAE 系統公司提供約 3500 萬美元的初始資金,用于對位于新罕布什爾州納舒亞的微電子中心 (MEC) 進行現代化改造。 這是《芯片和科學法案》的首次資助
    的頭像 發表于 12-28 16:24 ?346次閱讀
    主站蜘蛛池模板: 性一交一乱一色一视频| 俄罗斯1819y0u| 水蜜桃亚洲一二三四在线 | 久久内在线视频精品mp4| CHINA篮球体育飞机2023| 亚洲精品97福利在线| 秋霞电影院兔费理论观频84mb| 国产在线观看黄| 成人女人A级毛片免费软件| 中文在线观看免费网站| 小草视频免费观看在线| 欧美怡红院视频一区二区三区 | 六六影院午夜伦理| 国产精品色午夜视频免费看| 97人人超碰国产精品最新蜜芽| 亚洲精品卡2卡3卡4卡5卡区| 日本电影免费久久精品| 美女扒开尿口直播| 解开美女胸衣2破解版| 国产精品JIZZ在线观看A片| 99热这里只有是精品| 真人美女精美小穴| 亚洲精品6久久久久中文字幕| 伸进同桌奶罩里摸她胸作文| 欧美巨大巨粗黑人性AAAAAA| 久久综合狠狠综合狠狠| 激情午夜307| 国内精品免费久久影院| 国产精品一国产精品免费| 大香交伊人| 成年人视频在线免费看| av视频在线免播放观看| 91国在线产| 91极品蜜桃臀在线播放| 最近日本字幕免费高清| 伊人久久亚洲综合天堂| 亚洲性夜夜色综合网站| 亚洲欧美精品无码大片在线观看| 午夜婷婷精品午夜无码A片影院| 日本久久网站| 色就色 综合偷拍区欧美|