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

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

生活随笔

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

编程问答

Kubernetes HPA管理

發(fā)布時(shí)間:2024/3/12 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes HPA管理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、HPA介紹

??HPA的全稱為(Horizontal Pod Autoscaling),通俗的理解下HPA就是對(duì)deployment進(jìn)行擴(kuò)縮容的一個(gè)管理機(jī)制,他會(huì)監(jiān)測(cè)pod的cpu和memory的使用情況,當(dāng)cpu或memory達(dá)到一個(gè)值,為了能夠使服務(wù)正常運(yùn)行,他會(huì)進(jìn)行擴(kuò)容增加pod,來(lái)分擔(dān)壓力,當(dāng)pod的使用比較空閑穩(wěn)定的時(shí)候,他會(huì)自動(dòng)的進(jìn)行縮容,但縮容的速度遠(yuǎn)遠(yuǎn)慢于擴(kuò)容的速度,防止pod再一次達(dá)到閾值。

這是hpa擴(kuò)容的原理圖,其中有個(gè)metrics Server的API,HPA控制器通過(guò)Metrics Server的API(Heapster的API或聚合API)獲取這些數(shù)據(jù),基于用戶定義的擴(kuò)縮容規(guī)則進(jìn)行計(jì)算,得到目標(biāo)Pod副本數(shù)量。

?

二、介紹HPA三個(gè)版本

我們?cè)谑褂胊piVersion創(chuàng)建資源的時(shí)候,有些版本分為很多種,就像hpa,他就有三個(gè)版本

第一個(gè)版本:autosacling/v1 這是最簡(jiǎn)單的一個(gè)版本,所涵蓋的內(nèi)容比較少,但是使用簡(jiǎn)單,如果做一些簡(jiǎn)單的擴(kuò)縮容可以使用此版本

第二個(gè)版本:autoscaling/v2beta1 這是在v1的基礎(chǔ)上演變的 多了一個(gè)metric模塊

第三個(gè)版本: autoscaling/v2beta2 這個(gè)版本就比較詳細(xì)了,內(nèi)容也比較豐富,主要新增了擴(kuò)縮容靈敏度的控制,下文的例子就是使用的這個(gè)版本

我們?nèi)绻胫酪粋€(gè)apiversion有多少版本的時(shí)候 可以使用:? kubectl api-versions |grep 版本名稱

kubectl?api-resources 還可以查看所有資源

同時(shí)kubectl explain? hpa --api-version=autoscaling/v2beta2

還可以指定查看某一個(gè)版本下的具體信息

三、HPA實(shí)例

我們首先創(chuàng)建一個(gè)deploy 然后再創(chuàng)建hpa指定這個(gè)deploy進(jìn)程擴(kuò)縮容管理

apiVersion: apps/v1
kind: Deployment
metadata:
? creationTimestamp: null
? labels:
? ? app: web
? name: web
spec:
? replicas: 1
? selector:
? ? matchLabels:
? ? ? app: web
? strategy: {}
? template:
? ? metadata:
? ? ? creationTimestamp: null
? ? ? labels:
? ? ? ? app: web
? ? spec:
? ? ? containers:
? ? ? - image: nginx:latest
? ? ? ? name: nginx
? ? ? ? imagePullPolicy: IfNotPresent
? ? ? ? ports:
? ? ? ? - containerPort: 80
? ? ? ? resources:
? ? ? ? ? limits:
? ? ? ? ? ? cpu: "10m"
? ? ? ? ? ? memory: 20Mi
? ? ? ? ? requests:
? ? ? ? ? ? cpu: "10m"
? ? ? ? ? ? memory: 20Mi
status: {}

# 注意 在創(chuàng)建deploy的時(shí)候一定要限制pod的資源配額 資源配額在前幾章也說(shuō)過(guò)

下面創(chuàng)建HPA

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
? name: web-hpa
spec:
? minReplicas: 1 #最少副本
? maxReplicas: 1000 #最多副本
? scaleTargetRef: #指定目標(biāo)
? ? apiVersion: apps/v1
? ? kind: Deployment
? ? name: web
? metrics: #對(duì)哪個(gè)資源進(jìn)行監(jiān)控
? - type: Resource
? ? resource:
? ? ? name: cpu
? ? ? target:
? ? ? ? type: Utilization
? ? ? ? averageUtilization: 80
? behavior: #這里是重點(diǎn)? 設(shè)置擴(kuò)縮容的靈敏度
? ? scaleUp:
? ? ? stabilizationWindowSeconds: 5 # 在五秒之內(nèi)進(jìn)程擴(kuò)容
? ? ? policies:
? ? ? - type: Percent? #按照百分比進(jìn)行擴(kuò)容
? ? ? ? value: 900? #90%
? ? ? ? periodSeconds: 5 %每五秒擴(kuò)容一次

對(duì)于behavior下的polices模塊我們還可以這樣寫(xiě)

policies:

- type: pods

? value: 1

每次只新增一個(gè)pod

polices:

- type: pods

? value: 0

禁止HPA擴(kuò)容 (這條我認(rèn)為沒(méi)有什么意義,我們使用hpa就是為了進(jìn)行擴(kuò)縮容)

結(jié)語(yǔ):

以上就是HPA簡(jiǎn)單的介紹和操作流程

總結(jié)

以上是生活随笔為你收集整理的Kubernetes HPA管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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