国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微服務(wù)應(yīng)用視角解讀如何選擇K8S的彈性策略

這篇具有很好參考價值的文章主要介紹了微服務(wù)應(yīng)用視角解讀如何選擇K8S的彈性策略。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

微服務(wù)架構(gòu)的出現(xiàn),拆分了龐大的單體應(yīng)用,讓業(yè)務(wù)之間的開發(fā)與協(xié)作變得更加靈活。當(dāng)面臨業(yè)務(wù)流量增加的場景時,往往需要對一些應(yīng)用組件進行擴容。K8S在應(yīng)用層面提供了HPA,圍繞HPA開源社區(qū)延伸出了KEDA這樣的彈性組件,為微服務(wù)應(yīng)用以業(yè)務(wù)指標(biāo)執(zhí)行彈性策略提供了實現(xiàn)的可能性。但HPA正常工作的一個大前提是需要保證集群資源充足,為此用戶必須提前對集群擴容或時常保持集群資源冗余。

對于集群資源彈性這一命題,K8S社區(qū)給出了Cluster Autoscaler(CA)和Virtual Kubelet(VK)兩種解決方案。本文圍繞著微服務(wù)應(yīng)用的形態(tài)與特點,剖析了CA與VK各自適用的場景,并總結(jié)了微服務(wù)架構(gòu)下應(yīng)用該如何選擇集群資源彈性。

微服務(wù)應(yīng)用形態(tài)與特點

在微服務(wù)應(yīng)用架構(gòu),微服務(wù)架構(gòu)將一個龐大的應(yīng)用系統(tǒng)拆分成了一個個離散的應(yīng)用組件,這些組件通過RPC串在一起,對外提供完整的服務(wù)。每個組件是離散的,大部分組件可以通過水平擴縮從而調(diào)整服務(wù)容量。非核心鏈路上的組件,是允許延遲擴容或者不擴容,甚至是縮容讓出資源。

微服務(wù)架構(gòu)下在彈性場景存在五大特征點:

  • 水平伸縮可以調(diào)整系統(tǒng)容量:在外部資源充足的情況下,微服務(wù)應(yīng)用組件水平擴容可以提升業(yè)務(wù)系統(tǒng)的容量。
  • 應(yīng)用間存在依賴關(guān)系:單個微服務(wù)應(yīng)用并不能提供完整的服務(wù),擴容單個微服務(wù)組件,對系統(tǒng)容量的提升非常有限,往往需要和依賴的服務(wù)一起擴容才能有效提升系統(tǒng)容量。
  • 應(yīng)用本身是無狀態(tài)的:若微服務(wù)應(yīng)用本身有狀態(tài),對于水平擴容是不利的,例如對磁盤有強依賴,在擴容場景下需要注意調(diào)度親和性以打散Pod,避免同類型應(yīng)用在同一節(jié)點對磁盤IO搶占,同時縮容時還需要考慮對于狀態(tài)數(shù)據(jù)的處理。因此需要盡量改造成無狀態(tài)應(yīng)用。
  • 啟動速度快且服務(wù)上下線流量無損:服務(wù)上下線流量無損對于自動擴縮容場景至關(guān)重要,尤其是在大流量高并發(fā)場景下擴容,冷啟動的新Pod很容易被大流量擊潰,并且在健康探針的作用下,擴容出的新Pod不斷被K8s重啟,最終實現(xiàn)的是無效擴容。
  • 流量具有周期性:絕大多數(shù)微服務(wù)架構(gòu)應(yīng)用面向的是在線服務(wù),因此可以用二八定律來描述它,即20%的時間處理了80%的流量。對于業(yè)務(wù)流量而言,最顯著的特征是存在周期性的變化,且往往這個變化是快速的,所以微服務(wù)應(yīng)用容量擴縮的響應(yīng)速度對于業(yè)務(wù)系統(tǒng)的穩(wěn)定起重要作用。

在微服務(wù)應(yīng)用架構(gòu)中配置應(yīng)用彈性時,我們所需要考慮的是選擇合適的指標(biāo)來衡量系統(tǒng)容量。在配置集群資源彈性時,我們所需要考慮的是擴容出的計算資源是否能夠滿足應(yīng)用所需。

K8S 集群資源彈性技術(shù)方案

如前言中所提及,K8S社區(qū)給出了兩份“標(biāo)準答案”的框架,具體的資源彈性實現(xiàn)還依賴云廠商的技術(shù)形態(tài)與產(chǎn)品能力。

虛擬節(jié)點:VK

Virtual Kubelet是根據(jù)Kubelet定義提出的一個“虛擬節(jié)點”的概念,允許云廠商將云服務(wù)包裝成一個“虛擬節(jié)點”,加入到Kubernetes集群中。虛擬節(jié)點的背后往往是云廠商的大資源池,因此理論上我們可以認為虛擬節(jié)點的資源是無限的,當(dāng)然實際情況還要以云廠商的規(guī)模和產(chǎn)品能力來做判斷。

微服務(wù)架構(gòu)的出現(xiàn),拆分了龐大,微服務(wù),kubernetes,java,阿里云,云計算

節(jié)點伸縮:CA

Cluster Autoscaler是K8S社區(qū)給出的集群節(jié)點伸縮方案。CA監(jiān)聽集群中所有Pod事件,當(dāng)有Pod因為資源不足而無法調(diào)度時,CA會根據(jù)伸縮組信息進行模擬擴容并調(diào)度計算,最后按照預(yù)設(shè)的節(jié)點擴張策略進行真實節(jié)點擴容。同時CA監(jiān)聽集群整體資源利用率,當(dāng)利用率低于預(yù)設(shè)的縮容閾值時,CA進行模擬縮容調(diào)度計算,排除各種影響因素后,CA對可縮容節(jié)點執(zhí)行打污點、排水、刪除這一系列操作。

微服務(wù)架構(gòu)的出現(xiàn),拆分了龐大,微服務(wù),kubernetes,java,阿里云,云計算

各方案特點比對

以CA技術(shù)形態(tài)為主的真實節(jié)點伸縮與以VK技術(shù)形態(tài)為主的虛擬節(jié)點,這兩種主流技術(shù)手段有著各自特點,其中最主要的區(qū)別如下:

微服務(wù)架構(gòu)的出現(xiàn),拆分了龐大,微服務(wù),kubernetes,java,阿里云,云計算

簡而言之,CA伸縮真實節(jié)點以提供完整K8S能力,但響應(yīng)速度較慢;VK由云廠商資源池驅(qū)動,提供了秒級、無限資源的彈性能力,但不存在真實節(jié)點,從而失去了部分K8S特性。

云廠商解決方案

在VK和CA這兩種主要資源彈性技術(shù)方向上,各個云廠商也紛紛推出了對應(yīng)產(chǎn)品以提供相應(yīng)的解決方案。

微服務(wù)架構(gòu)的出現(xiàn),拆分了龐大,微服務(wù),kubernetes,java,阿里云,云計算

Serverless方向主要是Serverless Instance與Serverless Cluster。Serverless Instance產(chǎn)品有ECI、Fargate、ACI這類,以快速、無限資源為顯著特點。Serverless Cluster產(chǎn)品有阿里云的ASK、谷歌的GKE Autopilot,由云廠商維護所有集群資源,對用戶而言開箱即用免運維。

節(jié)點伸縮方向AWS還推出了開源組件Karpenter,它繞過了CA中伸縮組的概念,從而讓擴縮容時對于資源的選擇更加靈活。

資源彈性策略選擇與考量因素

對于資源彈性問題,我們首要考慮的是能力。即新的計算資源是否能夠滿足業(yè)務(wù)使用需求。以VK技術(shù)形態(tài)為主的彈性方案,受限于架構(gòu)設(shè)計、安全、性能等因素,天然地缺失了節(jié)點特性、容器特權(quán)等能力。對于有這部分訴求的業(yè)務(wù)應(yīng)用應(yīng)盡可能地進行改造,以移除相關(guān)依賴。

其次我們考慮的是成本效率。對于企業(yè)應(yīng)用而言,成本預(yù)算是不可避免的話題,定價規(guī)則以及計費模式不同,最終帶來的資源成本不同,勢必會影響我們對于某項技術(shù)的偏好。在當(dāng)前的Serverless場景下,計算資源大體上采用的還是按量計費模式,對于一些長時運行的應(yīng)用上,采用預(yù)付費模式的計算資源是否能達到更節(jié)省成本,還需要我們進一步去調(diào)研與嘗試。成本這一層面不僅包含資源成本,還包含運維成本、團隊技術(shù)學(xué)習(xí)成本以及依賴具體云廠商所隱含的遷移成本等等,這些成本在當(dāng)下可能對企業(yè)的收益影響有限,但從企業(yè)長遠發(fā)展角度來看,這一部分不可忽視。同時對于技術(shù)團隊而言,選擇相應(yīng)技術(shù)方案在節(jié)約運維成本和降低團隊學(xué)習(xí)成本的同時,需要理性看待這部分成本節(jié)省與團隊成長所帶來的收益之間的關(guān)系。

效率是影響業(yè)務(wù)收益成本的重要因素之一,從流量來襲,到HPA根據(jù)指標(biāo)做出響應(yīng),再到資源彈性做出動作,最后到應(yīng)用啟動服務(wù)上線。這之中每一個環(huán)節(jié)都存在時間成本,通常情況下這個時間成本越小越好,但也存在一些業(yè)務(wù)對于時間成本不敏感。對于擴容的每個環(huán)節(jié),都延伸出了相應(yīng)的技術(shù)解決方案。如HPA被動式響應(yīng),阿里云推出了AHPA帶指標(biāo)預(yù)測的提前擴容能力。如JAVA應(yīng)用啟動慢,GraalVM、Alibaba Dragonwell都在冷啟動上做出了一些努力。對于明確業(yè)務(wù)周期的應(yīng)用,設(shè)置好定時彈性提前擴容,這些問題自然引刃而解。

最后還有一些場景問題需要考慮,對當(dāng)前應(yīng)用架構(gòu)進行升級、遷移、重建時,我們需要把高彈性因素納入考慮范圍,進行合適的技術(shù)選型。

綜上所述,我們總結(jié)了一張資源彈性選擇策略圖,列舉了通用場景下對集群彈性選型時需要考慮的因素點。

微服務(wù)架構(gòu)的出現(xiàn),拆分了龐大,微服務(wù),kubernetes,java,阿里云,云計算

總結(jié)

在微服務(wù)架構(gòu)中,我們需要從業(yè)務(wù)視角梳理與劃分應(yīng)用組件。對于核心鏈路組件,要盡可能的保證這些組件的健壯性,并調(diào)整成一個高可用、高彈性的架構(gòu),從而讓核心業(yè)務(wù)長久運行。對于外圍鏈路組件,需要權(quán)衡成本與高可用、高彈性帶來的效益。

在K8S資源彈性問題上,現(xiàn)有技術(shù)手段中,我們需要考量兼容性、效率與成本,從而選擇合適于自身業(yè)務(wù)的集群彈性策略。

阿里云的微服務(wù)應(yīng)用托管平臺 EDAS 在資源彈性場景下,不僅針對性的對于獨享資源型業(yè)務(wù)虛擬機 ECS 集群,池化資源型業(yè)務(wù) K8S 集群,以及全托管免運維的阿里云 Serverless 集群均做了很好的支持;同時基于結(jié)合阿里云容器服務(wù)和 ECI ,同時提供了針對池化資源 + Serverless Instance 的形態(tài)場景支撐,讓我們微服務(wù)的業(yè)務(wù)在可以充分利用云技術(shù)所帶來的技術(shù)紅利。

原文鏈接

本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。文章來源地址http://www.zghlxwxcb.cn/news/detail-781432.html

到了這里,關(guān)于微服務(wù)應(yīng)用視角解讀如何選擇K8S的彈性策略的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 企業(yè)級實戰(zhàn) Spring Boot + K8S 中的滾動發(fā)布、優(yōu)雅停機、彈性伸縮、應(yīng)用監(jiān)控、配置分離

    下面為大家介紹我司生產(chǎn)環(huán)境使用了3年的基于K8S的dev ops 配置實現(xiàn) K8s + SpringCloud實現(xiàn)零宕機發(fā)版,優(yōu)雅重啟:健康檢查+滾動更新+優(yōu)雅停機+彈性伸縮+Prometheus監(jiān)控+配置分離(鏡像復(fù)用) 業(yè)務(wù)層面 項目依賴 pom.xml 使用 spring-boot-starter-actuator 鏡像 存活、就緒檢查 使用 prometheus

    2024年02月06日
    瀏覽(23)
  • 深入微服務(wù)架構(gòu) | 微服務(wù)與k8s架構(gòu)解讀

    深入微服務(wù)架構(gòu) | 微服務(wù)與k8s架構(gòu)解讀

    微服務(wù)項目架構(gòu)解讀 ① 什么是微服務(wù)? 微服務(wù)是指開發(fā)一個單個小型的但有業(yè)務(wù)功能的服務(wù),每個服務(wù)都有自己的處理和輕量通訊機制,可以部署在單個或多個服務(wù)器上。 微服務(wù)也指一種種松耦合的、有一定的有界上下文的面向服務(wù)架構(gòu)。也就是說,如果每個服務(wù)都要同時

    2024年02月05日
    瀏覽(25)
  • Kubernetes (K8s) 解讀:微服務(wù)與容器編排的未來

    Kubernetes (K8s) 解讀:微服務(wù)與容器編排的未來

    ???? 博主貓頭虎(????)帶您 Go to New World??? ????貓頭虎建議程序員必備技術(shù)棧一覽表??: ??? 全棧技術(shù) Full Stack : ?? MERN/MEAN/MEVN Stack | ?? Jamstack | ?? GraphQL | ?? RESTful API | ? WebSockets | ?? CI/CD | ?? Git Version Control | ?? DevOps ?? 前端技術(shù) Frontend : ??? HTML CSS |

    2024年02月09日
    瀏覽(34)
  • K8s項目實戰(zhàn)筆記獲阿里技術(shù)大咖力薦,深入淺出解讀容器編排原理與應(yīng)用

    K8s項目實戰(zhàn)筆記獲阿里技術(shù)大咖力薦,深入淺出解讀容器編排原理與應(yīng)用

    一、前言 Kubernetes,簡稱K8s,宛如一位技藝高超的舞臺導(dǎo)演,優(yōu)雅地指揮著容器集群的華麗表演。它不僅僅是一個開源的容器集群管理系統(tǒng),更是自動化部署、智能擴縮容與維護等功能的集大成者。作為領(lǐng)軍的容器編排工具,Kubernetes展現(xiàn)了基于容器技術(shù)的分布式架構(gòu)的無盡魅

    2024年03月10日
    瀏覽(22)
  • 滴滴彈性云基于 K8S 的調(diào)度實踐

    滴滴彈性云基于 K8S 的調(diào)度實踐

    上篇文章詳細介紹了彈性云混部的落地歷程,彈性云是滴滴內(nèi)部提供給網(wǎng)約車等核心服務(wù)的容器平臺,其基于 k8s 實現(xiàn)了對海量 node 的管理和 pod 的調(diào)度。本文重點介紹彈性云的調(diào)度能力,分為以下部分: 調(diào)度鏈路圖 :介紹當(dāng)前彈性云調(diào)度體系鏈路,對架構(gòu)體系有一個初步的

    2024年02月05日
    瀏覽(25)
  • 【k8s、云原生】基于metrics-server彈性伸縮

    【k8s、云原生】基于metrics-server彈性伸縮

    第四階段 時 ?間:2023年8月18日 參加人:全班人員 內(nèi) ?容: 基于metrics-server彈性伸縮 目錄 一、Kubernetes部署方式 (一)minikube (二)二進制包 (三)Kubeadm 二、基于kubeadm部署K8S集群 (一)環(huán)境準備 (二)部署kubernetes集群 (三)安裝Dashboard UI (四)metrics-server服務(wù)部署 (

    2024年02月12日
    瀏覽(23)
  • K8s(健康檢查+滾動更新+優(yōu)雅停機+彈性伸縮+Prometheus監(jiān)控+配置分離)

    前言 快速配置請直接跳轉(zhuǎn)至匯總配置 K8s + SpringBoot實現(xiàn)零宕機發(fā)布:健康檢查+滾動更新+優(yōu)雅停機+彈性伸縮+Prometheus監(jiān)控+配置分離(鏡像復(fù)用) 配置 健康檢查 業(yè)務(wù)層面 定義訪問端口、路徑及權(quán)限 application.yaml 將暴露/actuator/health/readiness和/actuator/health/liveness兩個接口,訪問方

    2024年02月14日
    瀏覽(24)
  • 基于k8s Deployment的彈性擴縮容及滾動發(fā)布機制詳解

    基于k8s Deployment的彈性擴縮容及滾動發(fā)布機制詳解

    k8s第一個重要設(shè)計思想:控制器模式。k8s里第一個控制器模式的完整實現(xiàn):Deployment。它實現(xiàn)了k8s一大重要功能:Pod的“水平擴展/收縮”(horizontal scaling out/in)。該功能從PaaS時代開始就是一個平臺級項目必備編排能力。 若你更新了Deployment的Pod模板(如修改容器的鏡像),則

    2024年02月03日
    瀏覽(26)
  • 在Kubernetes(k8s)上部署整個SpringCloud微服務(wù)應(yīng)用

    在Kubernetes(k8s)上部署整個SpringCloud微服務(wù)應(yīng)用

    視頻教程地址:https://www.bilibili.com/video/BV1Xh4y1q7aW/ 這次我準備了一個微服務(wù)項目,是依照RuoYi-Cloud(http://doc.ruoyi.vip/ruoyi-cloud/)進行了一些修改所得到的微服務(wù)項目。重點是修改了如圖根據(jù)不同環(huán)境添加了不同的配置文件: 項目代碼地址為:https://gitcode.net/m0_51510236/yueyang-cloud 我

    2024年02月05日
    瀏覽(16)
  • k8s服務(wù)發(fā)現(xiàn)之第五彈--使用 Service 連接到應(yīng)用

    通過前面教程的學(xué)習(xí),我們已經(jīng)可以將容器化的應(yīng)用程序在 Kubernetes 中運行起來,并且發(fā)布到 Kubernetes 內(nèi)/外的網(wǎng)絡(luò)上。 通常,Docker 使用一種 host-private 的聯(lián)網(wǎng)方式,在此情況下,只有兩個容器都在同一個節(jié)點(主機)上時,一個容器才可以通過網(wǎng)絡(luò)連接另一個容器。為了使

    2024年02月15日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包