亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kubernetes的HPA自動擴容與縮容是什么?

發布時間:2020-05-27 09:16:54 來源:億速云 閱讀:572 作者:Leah 欄目:云計算

Kubernetes的HPA自動擴容與縮容是什么?相信很多新手小白對HPA的了解處于懵懂狀態,通過這篇文章的總結,希望你能有所收獲。如下資料是關于HPA的內容。

HPA介紹

Kubernetes HPA(水平Pod自動縮放)Pod水平自動伸縮,通過此功能,只需簡單的配置,即可便可以利用監控指標(cpu使用率、磁盤、內存等)自動的擴容或縮容服務中Pod數量,當業務需求增加時,系統將為您無縫地自動增加適量容器,提高系統穩定性。此處將詳細講解HPA的核心設計原理和基于Hepaster的使用方法

前提條件

系統應該能否獲取到當前Pod的資源使用情況 (意思是可以執行kubectl top pod命令,并且能夠得到反饋信息)。

若要實現自動擴縮容的功能,還需要部署heapster服務,用來收集及統計資源的利用率,支持kubectl top命令,heapster服務集成在prometheus(普羅米修斯) MertricServer服務中,所以說,為了方便,我這里基于prometheus服務的環境上進行部署HPA(動態擴縮容)的服務。

實驗環境

主機IP地址服務
master192.168.1.21k8s
node01192.168.1.22k8s
node02192.168.1.23k8s

基于[https://blog.51cto.com/14320361/2473879]() 的實驗繼續進行

Kubernetes的HPA自動擴容與縮容是什么?

  • heapster:這個組件之前是集成在k8s集群的,不過在1.12版本之后被移除了。如果還想使用此功能,應該部署metricServer, 這個k8s集群資源使用情況的聚合器。
  • Cousom:同樣處于beta階段(autoscaling/v2beta1),但是涉及到自定義的REST API的開發,復雜度會大一些,并且當需要從自定義的監控中獲取數據時,只能設置絕對值,無法設置使用率。
自動擴展主要分為兩種:
  • 水平擴展(scale out),針對于實例數目的增減。
  • 垂直擴展(scal up),即單個實例可以使用的資源的增減, 比如增加cpu和增大內存。
    HPA屬于前者。它可以根據CPU使用率或應用自定義metrics自動擴展Pod數量(支持 replication controller、deployment 和 replica set)。

工作流程

  • 創建HPA資源,設定目標CPU使用率限額,以及最大/最小實例數,一定要設置Pod的資源限制參數: request,否則HPA不會工作。
  • 控制管理器每隔30s(在kube-controller-manager.service中可以通過–-horizontal-pod-autoscaler-sync-period修改)查詢metrics的資源使用情況。
  • 然后與創建時設定的值和指標做對比(平均值之和/限額),求出目標調整的實例個數。
  • 目標調整的實例數不能超過第一條中設定的最大/最小實例數。如果沒有超過,則擴容;超過,則擴容至最大的實例個數。
  • 重復第2-4步。

這里,我們使用一個測試鏡像, 這個鏡像基于php-apache制作的docker鏡像,包含了一些可以運行cpu密集計算任務的代碼。

1、創建一個deployment控制器

[root@master ~]#docker pull mirrorgooglecontainers/hpa-example:latest
//下載hpa-example鏡像

[root@master ~]# kubectl run php-apache --image=mirrorgooglecontainers/hpa-example --requests=cpu=200m --expose  --port=80
//基于hpa-example鏡像,運行一個deployment控制器,請求CPU的資源為200m,暴露一個80端口

查看一下

[root@master ~]# kubectl get deployments.

Kubernetes的HPA自動擴容與縮容是什么?

2、創建HPA控制器

[root@master ~]# kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
//當deployment資源對象的CPU使用率達到50%時,就進行擴容,最多可以擴容到10個

查看一下

[root@master ~]# kubectl get hpa

Kubernetes的HPA自動擴容與縮容是什么?

3、測試(master開啟三個端口)

新開啟多個終端,對pod進行死循環請求php-apache的pod

端口一

(1)創建一個應用,用來不停的訪問我們剛剛創建的php-apache的svc資源。
[root@master ~]# kubectl run -i --tty load-generator --image=busybox /bin/sh
(2)進入Pod內,執行以下這條命令.用來模擬訪問php-apache的svc資源。
[root@master ~]# while true; do wget -q -O- http://php-apache.default.svc.cluster.local ; done
//不停地向php-apache的svc資源,發送ok

端口二

[root@master ~]# kubectl get hpa -w
//實時查看pod的cpu狀態

Kubernetes的HPA自動擴容與縮容是什么?

可以看到php-apache的cpu使用情況已經超過了50%

端口三

[root@master images]# kubectl get pod -w
//實時查看pod的狀態

Kubernetes的HPA自動擴容與縮容是什么?可以看到當php-apache的cpu使用情況超過50%后,就會不斷生成新的php-apache來進行負載均衡(目前設置的上線時10個),當然,如果cpu使用情況下降到50%,master就會陸續地刪除php-apache,這樣的使用可以減少不必要的資源浪費、資源分配不均等情況。

看完上述內容,你們對Kubernetes的HPA自動擴容與縮容大概了解了嗎?如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

射洪县| 靖西县| 太保市| 博罗县| 岗巴县| 河源市| 莱西市| 上思县| 长岭县| 瑞金市| 安庆市| 黔西| 宣威市| 上虞市| 磴口县| 聂荣县| 阳西县| 高邮市| 阿巴嘎旗| 宣威市| 嘉义市| 昌黎县| 唐河县| 绵竹市| 凤凰县| 昌邑市| 腾冲县| 宾阳县| 南召县| 合肥市| 高碑店市| 景宁| 峨眉山市| 郸城县| 芜湖县| 乐亭县| 舟曲县| 郑州市| 宁城县| 禄丰县| 苏尼特左旗|