高階測試開發(fā)必備技能: k8s入門

現(xiàn)在稍微有點規(guī)模公司都是基于docker容器化部署技巧,K8s現(xiàn)在主流,應(yīng)用最廣的容器集群管理技術(shù)。

k8s全稱kubernetes(首字母為 k、首字母與尾字母之間有 8 個字符、尾字母為 s,所以簡稱 k8s),基于Docker容器集群環(huán)境管理問題,是谷歌保密十幾年的秘密武器----Borg系統(tǒng)的一個開源版本,于2014年9月發(fā)布第一個版本,2015年7月發(fā)布第一個正式版本。

k8s定位是實現(xiàn)集群環(huán)境下資源管理的容器自動化管理,主要提供了如下的主要功能:

自我修復(fù):一旦某一個容器崩潰,能夠在1秒中左右迅速啟動新的容器

彈性伸縮:可以根據(jù)需要,自動對集群中正在運行的容器數(shù)量進行調(diào)整

服務(wù)發(fā)現(xiàn):服務(wù)可以通過自動發(fā)現(xiàn)的形式找到它所依賴的服務(wù)

負(fù)載均衡:如果一個服務(wù)起動了多個容器,能夠自動實現(xiàn)請求的負(fù)載均衡

版本回退:如果發(fā)現(xiàn)新發(fā)布的程序版本有問題,可以立即回退到原來的版本

存儲編排:可以根據(jù)容器自身的需求自動創(chuàng)建存儲卷

一般我們對目標(biāo)環(huán)境壓測時候,指標(biāo)滿不足不了需求,最常見的處理方式就是擴容機器,不過業(yè)務(wù)訪問有高峰期,日常期,高峰期需要10個業(yè)務(wù)集群,日常期需要6個業(yè)務(wù)集群即可,還有流量激增問題,如何根據(jù)線上機器壓力動態(tài)擴容業(yè)務(wù)集群規(guī)模,或者縮容,是一個非常實用的技巧,這里推薦k8s的hpa控制器。

hap 全稱HorizontalPodAutoscaler

上面是k8s HPA 功能實現(xiàn)圖, Deployment, pod 是k8s入門基礎(chǔ)知識,不在本文介紹范圍,可自己查找資料學(xué)習(xí),或者參加vip課程會帶著大家詳細(xì)學(xué)習(xí)。

HAP實現(xiàn)首先要檢查 metrics-server是否安裝

可以使用?kubectl get po -n kube-system?查看安裝情況

如果有metrics-servcie相關(guān)pod說明安裝成功

metrics-server支持節(jié)點資源利用率監(jiān)控

接下來最核心的編排工作,由于文件太長,保留了核心配置說明,對cpu,memory做了上限制設(shè)置,這里為了快速實現(xiàn),設(shè)置規(guī)則是如果發(fā)現(xiàn)pod節(jié)點cpu超過10%,自動擴容,最大擴容10個

部署完成 可以看到HorizontalPodAutoscaler控制器,當(dāng)前資源利用率0%,目標(biāo)超過10%,就開始自動擴容

使用jmeter壓測,這時候發(fā)現(xiàn)節(jié)點使用率 超過10%,顯示976%,一個節(jié)點最大利用100%,應(yīng)該是擴容了10個節(jié)點

使用kubectl get po -n dev,看到當(dāng)前擴容情況,目標(biāo)完成

接下來測一下縮容情況:

關(guān)閉jmeter壓測,壓力變小,等待一會時間,會自動縮容,如下圖,nginx集群又恢復(fù)到1個節(jié)點

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容