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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kubernetes HPA管理

發布時間:2024/3/12 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes HPA管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、HPA介紹

??HPA的全稱為(Horizontal Pod Autoscaling),通俗的理解下HPA就是對deployment進行擴縮容的一個管理機制,他會監測pod的cpu和memory的使用情況,當cpu或memory達到一個值,為了能夠使服務正常運行,他會進行擴容增加pod,來分擔壓力,當pod的使用比較空閑穩定的時候,他會自動的進行縮容,但縮容的速度遠遠慢于擴容的速度,防止pod再一次達到閾值。

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

?

二、介紹HPA三個版本

我們在使用apiVersion創建資源的時候,有些版本分為很多種,就像hpa,他就有三個版本

第一個版本:autosacling/v1 這是最簡單的一個版本,所涵蓋的內容比較少,但是使用簡單,如果做一些簡單的擴縮容可以使用此版本

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

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

我們如果想知道一個apiversion有多少版本的時候 可以使用:? kubectl api-versions |grep 版本名稱

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

同時kubectl explain? hpa --api-version=autoscaling/v2beta2

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

三、HPA實例

我們首先創建一個deploy 然后再創建hpa指定這個deploy進程擴縮容管理

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: {}

# 注意 在創建deploy的時候一定要限制pod的資源配額 資源配額在前幾章也說過

下面創建HPA

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

對于behavior下的polices模塊我們還可以這樣寫

policies:

- type: pods

? value: 1

每次只新增一個pod

polices:

- type: pods

? value: 0

禁止HPA擴容 (這條我認為沒有什么意義,我們使用hpa就是為了進行擴縮容)

結語:

以上就是HPA簡單的介紹和操作流程

總結

以上是生活随笔為你收集整理的Kubernetes HPA管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。