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

第15關(guān) K8s HPA:自動(dòng)水平伸縮Pod,實(shí)現(xiàn)彈性擴(kuò)展和資源優(yōu)化

這篇具有很好參考價(jià)值的文章主要介紹了第15關(guān) K8s HPA:自動(dòng)水平伸縮Pod,實(shí)現(xiàn)彈性擴(kuò)展和資源優(yōu)化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

------> 課程視頻同步分享在今日頭條和B站

大家好,我是博哥愛(ài)運(yùn)維,這節(jié)課帶來(lái)k8s的HPA 自動(dòng)水平伸縮pod( 視頻后面有彩蛋 : ) )。
第15關(guān) K8s HPA:自動(dòng)水平伸縮Pod,實(shí)現(xiàn)彈性擴(kuò)展和資源優(yōu)化,2023年Kubernetes實(shí)戰(zhàn)攻略,kubernetes,docker,云原生,容器

我們知道,初始Pod的數(shù)量是可以設(shè)置的,同時(shí)業(yè)務(wù)也分流量高峰和低峰,那么怎么即能不過(guò)多的占用K8s的資源,又能在服務(wù)高峰時(shí)自動(dòng)擴(kuò)容pod的數(shù)量呢,在K8s上的答案是Horizontal Pod Autoscaling,簡(jiǎn)稱HPA 自動(dòng)水平伸縮,這里只以我們常用的CPU計(jì)算型服務(wù)來(lái)作為HPA的測(cè)試,這基本滿足了大部分業(yè)務(wù)服務(wù)需求,其它如vpa縱向擴(kuò)容,還有基于業(yè)務(wù)qps等特殊指標(biāo)擴(kuò)容這個(gè)在后面計(jì)劃會(huì)以獨(dú)立高級(jí)番外篇來(lái)作教程。

自動(dòng)水平伸縮,是指運(yùn)行在k8s上的應(yīng)用負(fù)載(POD),可以根據(jù)資源使用率進(jìn)行自動(dòng)擴(kuò)容、縮容,它依賴metrics-server服務(wù)pod使用資源指標(biāo)收集;我們知道應(yīng)用的資源使用率通常都有高峰和低谷,所以k8s的HPA特性應(yīng)運(yùn)而生;它也是最能體現(xiàn)區(qū)別于傳統(tǒng)運(yùn)維的優(yōu)勢(shì)之一,不僅能夠彈性伸縮,而且完全自動(dòng)化!

我們?cè)谏a(chǎn)中通常用得最多的就是基于服務(wù)pod的cpu使用率metrics來(lái)自動(dòng)擴(kuò)容pod數(shù)量,下面來(lái)以生產(chǎn)的標(biāo)準(zhǔn)來(lái)實(shí)戰(zhàn)測(cè)試下(注意:使用HPA前我們要確保K8s集群的dns服務(wù)和metrics服務(wù)是正常運(yùn)行的,并且我們所創(chuàng)建的服務(wù)需要配置指標(biāo)分配)

# pod內(nèi)資源分配的配置格式如下:
# 默認(rèn)可以只配置requests,但根據(jù)生產(chǎn)中的經(jīng)驗(yàn),建議把limits資源限制也加上,因?yàn)閷?duì)K8s來(lái)說(shuō),只有這兩個(gè)都配置了且配置的值都要一樣,這個(gè)pod資源的優(yōu)先級(jí)才是最高的,在node資源不夠的情況下,首先是把沒(méi)有任何資源分配配置的pod資源給干掉,其次是只配置了requests的,最后才是兩個(gè)都配置的情況,仔細(xì)品品
      resources:
        limits:   # 限制單個(gè)pod最多能使用1核(1000m 毫核)cpu以及2G內(nèi)存
          cpu: "1"
          memory: 2Gi
        requests: # 保證這個(gè)pod初始就能分配這么多資源
          cpu: "1"
          memory: 2Gi

我們先不做上面配置的改動(dòng),看看直接創(chuàng)建hpa會(huì)產(chǎn)生什么情況:

# 為deployment資源web創(chuàng)建hpa,pod數(shù)量上限3個(gè),最低1個(gè),在pod平均CPU達(dá)到50%后開(kāi)始擴(kuò)容
kubectl  autoscale deployment web --max=3 --min=1 --cpu-percent=50

#過(guò)一會(huì)看下這個(gè)hpa資源的描述(截取這下面一部分)
# 下面提示說(shuō)到,HPA缺少最小資源分配的request參數(shù)
Conditions:
  Type           Status  Reason                   Message
  ----           ------  ------                   -------
  AbleToScale    True    SucceededGetScale        the HPA controller was able to get the target's current scale
  ScalingActive  False   FailedGetResourceMetric  the HPA was unable to compute the replica count: missing request for cpu
Events:
  Type     Reason                        Age                     From                       Message
  ----     ------                        ----                    ----                       -------
  Warning  FailedComputeMetricsReplicas  3m46s (x12 over 6m33s)  horizontal-pod-autoscaler  invalid metrics (1 invalid out of 1), first error is: failed to get cpu utilization: missing request for cpu
  Warning  FailedGetResourceMetric       89s (x21 over 6m33s)    horizontal-pod-autoscaler  missing request for cpu

我們現(xiàn)在以上面創(chuàng)建的deployment資源web來(lái)實(shí)踐下hpa的效果,首先用我們學(xué)到的方法導(dǎo)出web的yaml配置,并增加資源分配配置增加:

# cat web.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: web
  name: web
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - image: nginx:1.21.6
        name: nginx
        resources:
          limits:   # 因?yàn)槲疫@里是測(cè)試環(huán)境,所以這里CPU只分配50毫核(0.05核CPU)和20M的內(nèi)存
            cpu: "50m"
            memory: 20Mi
          requests: # 保證這個(gè)pod初始就能分配這么多資源
            cpu: "50m"
            memory: 20Mi

更新web資源:

# kubectl  apply -f web.yaml              
deployment.apps/web configured

然后創(chuàng)建hpa:

# kubectl  autoscale deployment web --max=3 --min=1 --cpu-percent=50         
horizontalpodautoscaler.autoscaling/web autoscaled

# 等待一會(huì),可以看到相關(guān)的hpa信息(K8s上metrics服務(wù)收集所有pod資源的時(shí)間間隔大概在60s的時(shí)間)
# kubectl get hpa -w
NAME   REFERENCE        TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
web    Deployment/web   <unknown>/50%   1         3         1          39s
web    Deployment/web   0%/50%          1         3         1          76s

我們來(lái)模擬業(yè)務(wù)流量增長(zhǎng),看看hpa自動(dòng)伸縮的效果:

# 我們啟動(dòng)一個(gè)臨時(shí)pod,來(lái)模擬大量請(qǐng)求
# kubectl run -it --rm busybox --image=registry.cn-shanghai.aliyuncs.com/acs/busybox:v1.29.2 -- sh
/ # while :;do wget -q -O- http://web;done

# 等待2 ~ 3分鐘,注意k8s為了避免頻繁增刪pod,對(duì)副本的增加速度有限制
# kubectl get hpa web -w
NAME   REFERENCE        TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
web    Deployment/web   0%/50%    1         3         1          11m
web    Deployment/web   102%/50%   1         3         1          14m
web    Deployment/web   102%/50%   1         3         3          14m

# 看下hpa的描述信息下面的事件記錄
# kubectl describe hpa web
Events:
  Type     Reason                        Age                From                       Message
  ----     ------                        ----               ----                       -------
...
  Normal   SuccessfulRescale             62s                horizontal-pod-autoscaler  New size: 3; reason: cpu resource utilization (percentage of request) above target

好了,HPA的自動(dòng)擴(kuò)容已經(jīng)見(jiàn)過(guò)了,現(xiàn)在停掉壓測(cè),觀察下HPA的自動(dòng)收縮功能:

# 可以看到,在業(yè)務(wù)流量高峰下去后,HPA并不急著馬上收縮pod數(shù)量,而是等待5分鐘后,再進(jìn)行收斂,這是穩(wěn)妥的作法,是k8s為了避免頻繁增刪pod的一種手段
# kubectl get hpa web -w
NAME   REFERENCE        TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
web    Deployment/web   102%/50%   1         3         3          16m
web    Deployment/web   0%/50%     1         3         3          16m
web    Deployment/web   0%/50%     1         3         3          20m
web    Deployment/web   0%/50%     1         3         1          21m
附:

VPA https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler

KEDA基于自定義api接口伸縮
https://keda.sh/docs/2.12/scalers/metrics-api/

KEDA基于Prometheus指標(biāo)伸縮

https://keda.sh/docs/2.12/scalers/prometheus/文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-754104.html

到了這里,關(guān)于第15關(guān) K8s HPA:自動(dòng)水平伸縮Pod,實(shí)現(xiàn)彈性擴(kuò)展和資源優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • HPA (Horizontal Pod Autoscaler) In K8s

    沒(méi)準(zhǔn)正在建設(shè)中哈哈哈 作為一位城市觀察者和設(shè)計(jì)師,我想借助Kubernetes的HPA機(jī)制思想來(lái)描述城市紅綠燈自動(dòng)調(diào)節(jié)的場(chǎng)景。 在這個(gè)故事中,我們的城市面臨著日益增長(zhǎng)的交通流量和擠塞問(wèn)題。為了應(yīng)對(duì)這一挑戰(zhàn),城市決定引入智能化紅綠燈系統(tǒng),以更好地管理交通流量和提高

    2024年02月07日
    瀏覽(42)
  • k8s 1.23.10 動(dòng)態(tài)POD擴(kuò)縮容(HPA )

    k8s 1.23.10 動(dòng)態(tài)POD擴(kuò)縮容(HPA )

    目錄 為什么要自動(dòng)擴(kuò)縮容? 再K8S中擴(kuò)容分為兩種: 一、Node層面: 二、Pods層面: 自動(dòng)擴(kuò)縮容的方案有哪些 Kubernetes HPA (Horizontal Pod Autoscaling) Kubernetes KPA (Knative Pod Autoscaler) Kubernetes VPA (Vertical Pod Autoscaler) 基于HPA進(jìn)行POD的擴(kuò)縮容 kube-apiserver 配置: 安裝metrcs-server與addon-

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

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

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

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

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

    2024年02月14日
    瀏覽(24)
  • SpringBoot + K8S 中的滾動(dòng)發(fā)布、優(yōu)雅停機(jī)、彈性伸縮、應(yīng)用監(jiān)控、配置分離

    前言 配置 健康檢查 滾動(dòng)更新 彈性伸縮 Prometheus集成 配置分離 匯總配置 業(yè)務(wù)層面 運(yùn)維層面 K8s + SpringBoot實(shí)現(xiàn)零宕機(jī)發(fā)布:健康檢查+滾動(dòng)更新+優(yōu)雅停機(jī)+彈性伸縮+Prometheus監(jiān)控+配置分離(鏡像復(fù)用) 基于 Spring Boot + MyBatis Plus + Vue Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持

    2024年02月07日
    瀏覽(19)
  • 第16關(guān) 革新云計(jì)算:如何利用彈性容器與托管K8S實(shí)現(xiàn)極速服務(wù)POD擴(kuò)縮容

    第16關(guān) 革新云計(jì)算:如何利用彈性容器與托管K8S實(shí)現(xiàn)極速服務(wù)POD擴(kuò)縮容

    ------ 課程視頻同步分享在今日頭條和B站 天下武功,唯快不破! 大家好,我是博哥愛(ài)運(yùn)維。這節(jié)課給大家講下云平臺(tái)的彈性容器實(shí)例怎么結(jié)合其托管K8S,使用混合服務(wù)架構(gòu),帶來(lái)極致擴(kuò)縮容快感。 下面是全球主流云平臺(tái)彈性容器相關(guān)使用文檔: 這里以阿里云的ACK托管K8S平臺(tái)

    2024年02月04日
    瀏覽(19)
  • 企業(yè)級(jí)實(shí)戰(zhàn) Spring Boot + K8S 中的滾動(dòng)發(fā)布、優(yōu)雅停機(jī)、彈性伸縮、應(yīng)用監(jiān)控、配置分離

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

    2024年02月06日
    瀏覽(22)
  • 【云原生?監(jiān)控】基于Prometheus實(shí)現(xiàn)自定義指標(biāo)彈性伸縮(HPA)

    【云原生?監(jiān)控】基于Prometheus實(shí)現(xiàn)自定義指標(biāo)彈性伸縮(HPA)

    「Autoscaling即彈性伸縮,是Kubernetes中的一種非常核心的功能,它可以根據(jù)給定的指標(biāo)(例如 CPU 或內(nèi)存)自動(dòng)縮放Pod副本,從而可以更好地管理和利用計(jì)算資源,提高系統(tǒng)的可用性和性能,同時(shí)減少開(kāi)銷和成本。彈性伸縮可以解決服務(wù)負(fù)載存在較大波動(dòng)或資源實(shí)際使用與預(yù)估

    2024年02月14日
    瀏覽(19)
  • Kubernetes 筆記(17)— 系統(tǒng)監(jiān)控、使用Metrics Server、hpa 自動(dòng)伸縮 Pod 數(shù)量、Prometheus 的使用

    Kubernetes 筆記(17)— 系統(tǒng)監(jiān)控、使用Metrics Server、hpa 自動(dòng)伸縮 Pod 數(shù)量、Prometheus 的使用

    如果你對(duì) Linux 系統(tǒng)有所了解的話,也許知道有一個(gè)命令 top 能夠?qū)崟r(shí)顯示當(dāng)前系統(tǒng)的 CPU 和內(nèi)存利用率,它是性能分析和調(diào)優(yōu)的基本工具,非常有用。 Kubernetes 也提供了類似的命令,就是 kubectl top ,不過(guò)默認(rèn)情況下這個(gè)命令不會(huì)生效,必須要安裝一個(gè)插件 Metrics Server 才可以。

    2024年02月01日
    瀏覽(21)
  • 阿里云ACK(容器服務(wù))+ElasticWorkload彈性負(fù)載+HPA彈性伸縮實(shí)踐

    阿里云ACK(容器服務(wù))+ElasticWorkload彈性負(fù)載+HPA彈性伸縮實(shí)踐

    阿里云ACK(kubernetes容器服務(wù)),高彈性,高穩(wěn)定性,低成本解決方案。 通過(guò)將ECI服務(wù)以虛擬節(jié)點(diǎn)的方式接入ACK容器集群,將集群中pod應(yīng)用的固定量調(diào)度到現(xiàn)有的ACK容器服務(wù)的ECS node節(jié)點(diǎn)上,將集群中pod應(yīng)用的彈性量通過(guò)ElasticWorkload組件調(diào)度的ECI服務(wù)的虛擬節(jié)點(diǎn)上。 以ACK容器服務(wù)

    2024年02月11日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包