999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Kubernetes舵手集群系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)

2021-03-15 07:01:33單平平林坤
電腦知識(shí)與技術(shù) 2021年3期
關(guān)鍵詞:數(shù)據(jù)存儲(chǔ)

單平平 林坤

摘要:為了打破運(yùn)維和開發(fā)之間的邊界,徹底解決DevOps中交付和部署環(huán)節(jié)的困境,基于Kubernetes的舵手集群系統(tǒng)應(yīng)需而生。系統(tǒng)采用Kubernetes容器編排、EFK日志收集、Prometheus監(jiān)控告警、Ceph后端存儲(chǔ)和基于Jenkins/Gitlab的CICD技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了具有“源碼一鍵部署”“日志實(shí)時(shí)收集”“監(jiān)控告警展示”“數(shù)據(jù)存儲(chǔ)分析”和“鏡像管理維護(hù)”五大模塊的舵手集群系統(tǒng)。系統(tǒng)不僅可以實(shí)現(xiàn)源碼的一鍵部署,而且穩(wěn)定可靠,功能齊全,管理性強(qiáng),解決了開發(fā)和運(yùn)維工程師在交付和部署環(huán)節(jié)的困境。

關(guān)鍵詞:Kubernetes;EFK;Prometheus;源碼部署;數(shù)據(jù)存儲(chǔ);鏡像管理

中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)03-0106-03

Abstract: In order to break the boundary between operation and development, and thoroughly solve the dilemma of delivery and deployment in DevOps, Kubernetes based helmsman cluster system should be born on demand. In this system, Kubernetes container arrangement, EFK log collection, Prometheus monitoring alarm, Ceph back-end storage and CICD technology based on Jenkins/Gitlab are used. The helmsman cluster system with five modules of “source code one key deployment”“l(fā)og real-time collection”“monitoring alarm display”“data storage analysis”and “image management and maintenance”is designed and implemented. This system not only can realize the one key deployment of source code, but also is stable and reliable, with complete functions and strong management, which solves the difficulties in the delivery and deployment of development and maintenance engineers. After testing, the helmsman cluster system runs stably and achieves the expected effect.

Key words: Kubernetes; EFK; Prometheus; source code deployment; data storage; image management

1 背景

IT領(lǐng)域新技術(shù)、新概念層出不窮,尤其是以Docker為代表的容器技術(shù)的出現(xiàn),終結(jié)了DevOps中交付和部署環(huán)節(jié)因環(huán)境、配置及程序本身的不同而造成的動(dòng)輒幾種甚至十幾種部署配置的困境。部署的復(fù)雜度雖然降低了,但以容器格式運(yùn)行的應(yīng)用程序間的協(xié)同卻成了一個(gè)新的亟待解決的問題,以Kubernetes為代表的容器編排技術(shù)應(yīng)需而生[1-2]。

如何實(shí)現(xiàn)開發(fā)工程師只需為應(yīng)用開發(fā)一套源碼,運(yùn)維工程師只需要配置一次運(yùn)行時(shí)環(huán)境是很多IT工程師一直關(guān)心的問題。基于Kubernetes的舵手集群系統(tǒng),是一個(gè)徹底解放開發(fā)人員和運(yùn)維人員的集群系統(tǒng),是高可用的、安全的、易管理的。

2 相關(guān)技術(shù)概述

舵手集群系統(tǒng)的部署工具及環(huán)境如表1所示:

2 系統(tǒng)設(shè)計(jì)

2.1 系統(tǒng)架構(gòu)圖

舵手集群系統(tǒng)在實(shí)現(xiàn)打破DevOps的邊界實(shí)現(xiàn)源碼的一鍵部署、日志實(shí)時(shí)收集、監(jiān)控告警、數(shù)據(jù)存儲(chǔ)和鏡像管理的同時(shí),還在抗高并發(fā)、防節(jié)點(diǎn)故障和數(shù)據(jù)存儲(chǔ)可靠性上做了保障。舵手集群系統(tǒng)架構(gòu)圖如圖1所示:

舵手集群系統(tǒng)數(shù)據(jù)流走向主要分以下幾步:

1)開發(fā)工程師將項(xiàng)目源碼合并到Master分支并推送到Gitlab源碼管理倉庫服務(wù)器;

2)Gitlab Webhook感知到Master分支發(fā)生改動(dòng)后觸發(fā)Jenkins持續(xù)集成Pod在Kubernetes集群中臨時(shí)啟一個(gè)Jenkins-slave Pod,進(jìn)行項(xiàng)目源碼拉取、編譯、測試、構(gòu)建Docker鏡像、并推送鏡像到私有倉庫Harbor[3-5];

3)Jenkins通過Kubernetes deployment插件在Kubernetes集群中拉取推送到Harbor鏡像倉庫中的應(yīng)用鏡像制作成應(yīng)用Pod,此時(shí)已經(jīng)完成一鍵部署源碼到Kubernetes集群;

4)Traefik代理容器編排集群中的應(yīng)用服務(wù),將應(yīng)用服務(wù)暴露到公網(wǎng)供用戶訪問[6-7];

5)EFK日志收集集群的Kibana界面可以展示采集到的已經(jīng)發(fā)布的應(yīng)用服務(wù)的日志信息,供運(yùn)維工程師和開發(fā)工程師分析;

6)Prometheus監(jiān)控告警集群的Grafana展示界面可以實(shí)時(shí)刷新整個(gè)容器編集群和應(yīng)用服務(wù)的運(yùn)行狀態(tài),并將越限行為進(jìn)行郵件告警發(fā)送給運(yùn)維工程師;

7)舵手集群內(nèi)所有有狀態(tài)類應(yīng)用程序的數(shù)據(jù)都存儲(chǔ)在分布式存儲(chǔ)集群Ceph[8]。

2.2 網(wǎng)絡(luò)地址設(shè)計(jì)

舵手集群系統(tǒng)主要針對(duì)的是運(yùn)維工程師和開發(fā)工程師,是對(duì)內(nèi)所需,集群系統(tǒng)虛機(jī)采用內(nèi)網(wǎng)IP。

1)Kubernetes集群采用三主三從模式,從架構(gòu)規(guī)劃上防止單點(diǎn)故障,保證集群高可用性;

2)由bs-k8s-ceph-209、bs-k8s-gitlab-208、bs-k8s-harbor-207三節(jié)點(diǎn)組成后端分布式存儲(chǔ)Ceph集群;

3)Gitlab源碼管理倉庫是供開發(fā)工程師使用,獨(dú)立于Kubernetes集群之外,既減輕了Kubernetes集群的負(fù)擔(dān)又權(quán)限分明便于維護(hù)管理。

2.3 集群資源設(shè)計(jì)

將Etcd共享數(shù)據(jù)持久化存儲(chǔ)集群集成到Kubernetes集群的Master節(jié)點(diǎn),Ceph后端存儲(chǔ)集群重復(fù)利用Gitlab源碼管理機(jī)和Harbor鏡像存儲(chǔ)機(jī),既完成了集群目標(biāo)實(shí)現(xiàn)的同時(shí)又對(duì)物理主機(jī)資源進(jìn)行了合理的重復(fù)性利用。

2.4 安全策略設(shè)計(jì)

集群的訪問來源主要分三類人員:開發(fā)工程師、容器運(yùn)維工程師和普通用戶。Kubernetes對(duì)于鑒權(quán)擁有自己的一套規(guī)則,它通過一系列機(jī)制來實(shí)現(xiàn)集群的安全機(jī)制,包括API Server的認(rèn)證、授權(quán)、準(zhǔn)入控制機(jī)制等。最小權(quán)限原則,合理限制所有組件權(quán)限,確保組件只執(zhí)行它被授權(quán)的行為,通過限制單個(gè)組件的能力來限制它所能達(dá)到的權(quán)限范圍:

1)開發(fā)工程師只擁有對(duì)Gitlab服務(wù)器的操作權(quán)限,并且必須提交操作目的;

2)容器運(yùn)維工程師擁有整套集群系統(tǒng)的全部權(quán)限;

3)普通用戶對(duì)項(xiàng)目的訪問必須經(jīng)Traefik代理,確保普通用戶對(duì)后端集群無感知。

3 系統(tǒng)架構(gòu)部署

舵手集群系統(tǒng)實(shí)現(xiàn)的主要功能有:“源碼部署”“日志收集”“監(jiān)控告警”“數(shù)據(jù)存儲(chǔ)”和“鏡像管理”。部署舵手集群系統(tǒng)的過程如下:

1)Kubernetes容器編排集群部署:使用Ansible自動(dòng)化部署Kubernetes容器編排集群,步驟如下:第一步:提前規(guī)劃資源清單;第二步:書寫資源配置清單;第三步:部署Kubernetes集群;第四步:檢驗(yàn)部署;第五步:通過代理將Pod Service暴露到外網(wǎng)。

2)鏡像倉庫部署:為了主機(jī)資源的最大利用,在這里選擇獨(dú)立于Kubernetes集群之外部署。通過Harbor的UI界面,基本可以完成Harbor鏡像倉庫的所有功能。

3)日志收集部署:配置啟動(dòng)一個(gè)可擴(kuò)展的Elasticsearch 集群,然后在 Kubernetes 集群中創(chuàng)建一個(gè)Kibana應(yīng)用,最后通過DaemonSet來運(yùn)行Fluentd,以便它在每個(gè)Kubernetes 工作節(jié)點(diǎn)上都可以運(yùn)行一個(gè)Pod。

4)監(jiān)控告警部署:舵手集群系統(tǒng)采用Prometheus的Operator部署模型,作為一個(gè)控制器,他會(huì)去創(chuàng)建Prometheus、ServiceMonitor、AlertManager以及PrometheusRule 4個(gè)CRD資源對(duì)象,然后會(huì)一直監(jiān)控并維持這4個(gè)資源對(duì)象的狀態(tài)。Grafana根據(jù)業(yè)務(wù)的需要,主要的監(jiān)控對(duì)象有:主機(jī)、CPU、內(nèi)存、IO性能、TCP和網(wǎng)絡(luò)流量。AlertManager告警方式在這里使用網(wǎng)易云郵箱作為發(fā)送端,向QQ發(fā)送告警信息。

5)CICD部署:GitLab 是一個(gè)用于倉庫管理系統(tǒng)的開源項(xiàng)目,使用Git作為代碼管理工具。Jenkins通過Kubernetes Deployment插件在Kubernetes集群中臨時(shí)啟一個(gè)Jenkins-slave Pod進(jìn)行項(xiàng)目源碼拉取、源碼編譯、測試源碼、制作Docker鏡像、推送鏡像到私有倉庫Harbor。

6)分布式存儲(chǔ)部署:分布式存儲(chǔ)集群采用傳統(tǒng)二進(jìn)制部署,每個(gè)節(jié)點(diǎn)都要添加3塊20G硬盤,做Ceph的Yum添加、時(shí)鐘同步和免密鑰登錄認(rèn)證。Ceph 采用原生的Dashboard功能,通過Dashboard可以獲取Ceph集群的各種基本狀態(tài)信息。

4 系統(tǒng)測試

在Kubernetes集群中觀察應(yīng)用Pod的變化,發(fā)現(xiàn)先創(chuàng)建了一個(gè)Jenkins-slave Pod處理源碼拉取、構(gòu)建、測試、打包鏡像、推送鏡像、部署應(yīng)用Pod。過程代碼如下:

# kubectl get pods -A -w | grep assembly

assembly? ? ? jenkins-agent-dl1xl-85ksz? ? ? ?1/1? ? ?Running? ? ? ? ? ? ?0? ? ? ? ? 13s? ? ? ? ? ? ? ? ? ? ? //臨時(shí)啟動(dòng)一個(gè)Jenkins-Slave Pod

assembly? ?web-test-tomcat1-deployment-d645649bf-q272v? ?1/1? ? ?Running? ? ? ?0? ? ? ? ? 22m? ? ? ? ? ?//部署完成應(yīng)用程序

assembly? ? ? jenkins-agent-dl1xl-85ksz? ? ? ? 0/1? ? ?Terminating? ? ? ? ?0? ? ? ? ? 5m20s? ? ?//部署完成應(yīng)用程序后Jenkins-Slave Pod 自動(dòng)退出

在Harbor鏡像管理倉庫的日志記錄中看到有推送和拉取。Harbor倉庫日志記錄圖如圖2所示:

在Google瀏覽器中訪問代理域名,測試是否正確完成源碼的一鍵部署。應(yīng)用界面如圖3所示。

通過觀察Kubernetes 的Dashboard界面可以看到Pod確實(shí)部署成功。Dashboard顯示Pod部署成功圖如圖4所示。

參考文獻(xiàn):

[1] 何鵬.基于Kubernetes云資源管理方法的研究與設(shè)計(jì)[D].北京:華北電力大學(xué),2019.

[2] 馮一凡,朱文龍,楊雙雙.基于Docker的分布式網(wǎng)絡(luò)安全攻防平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)產(chǎn)品與流通,2020(3):47.

[3] 田貞朗.Kubernetes基于Prometheus彈性伸縮POD的方法[J].計(jì)算機(jī)產(chǎn)品與流通,2020(3):270.

[4] 周瑩,歐中紅,李俊.基于Jenkins的持續(xù)集成自動(dòng)部署研究[J].計(jì)算機(jī)與數(shù)字工程,2016,44(2):267-270.

[5] 蔡永健,路云菲,鄔遠(yuǎn)祥,等.基于Jenkins和Docker容器技術(shù)在數(shù)字化電站項(xiàng)目自動(dòng)化部署的研究及應(yīng)用[J].計(jì)算機(jī)時(shí)代,2020(2):77-80.

[6] 李傳根.Elasticsearch數(shù)據(jù)存儲(chǔ)策略研究[D]. 重慶:重慶郵電大學(xué),2019.

[7] 沈尚博,袁泉.基于Ansible的自動(dòng)化運(yùn)維工具設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦(理論版),2020(1):120-122.

【通聯(lián)編輯:謝媛媛】

猜你喜歡
數(shù)據(jù)存儲(chǔ)
簡單的數(shù)據(jù)修復(fù)
大數(shù)據(jù)時(shí)代檔案信息建設(shè)的認(rèn)識(shí)和實(shí)踐
淺談電力大數(shù)據(jù)平臺(tái)關(guān)鍵技術(shù)研究與應(yīng)用
開源數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)路徑分析
基于Android開發(fā)的APP數(shù)據(jù)存儲(chǔ)研究
哈希算法在物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)中的應(yīng)用
空難事故跨媒體信息采集與檢索方法的研究
基于STM32的AD采集與SD卡數(shù)據(jù)存儲(chǔ)
淺談信息系統(tǒng)工程和POJO模型組件開發(fā)
基于MongoDB的調(diào)查決策系統(tǒng)數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì)
主站蜘蛛池模板: 乱人伦99久久| 九一九色国产| 免费在线一区| 亚洲精品欧美日本中文字幕| 永久成人无码激情视频免费| 亚洲av日韩av制服丝袜| 日韩欧美中文亚洲高清在线| 自偷自拍三级全三级视频| 福利在线免费视频| 日韩AV手机在线观看蜜芽| 久久久久人妻精品一区三寸蜜桃| 国产精品观看视频免费完整版| 女人天堂av免费| 国产对白刺激真实精品91| 亚洲中文无码av永久伊人| 亚洲天堂日韩av电影| 老熟妇喷水一区二区三区| 亚洲一本大道在线| 国产成人免费高清AⅤ| 91精品啪在线观看国产60岁| 免费国产黄线在线观看| 国产成人免费手机在线观看视频 | 中文字幕在线欧美| 亚洲电影天堂在线国语对白| 99热这里只有免费国产精品| 色婷婷狠狠干| 精品撒尿视频一区二区三区| 国产欧美综合在线观看第七页 | 欧美一级在线播放| 毛片一区二区在线看| 亚洲国产天堂久久综合| 全午夜免费一级毛片| 国产国拍精品视频免费看| 激情综合网址| 高清乱码精品福利在线视频| 国产小视频在线高清播放| 国产97色在线| 农村乱人伦一区二区| 中文字幕免费播放| 91精品啪在线观看国产91| 久草视频一区| 国产精品夜夜嗨视频免费视频| 婷婷亚洲最大| 久久久久亚洲精品无码网站| 99久久精品久久久久久婷婷| 国产精品嫩草影院av| 91网址在线播放| 中文字幕永久在线观看| 免费午夜无码18禁无码影院| 在线国产三级| 欧美黄网在线| 日本高清在线看免费观看| 久久精品丝袜高跟鞋| 午夜国产小视频| 亚洲AV无码一二区三区在线播放| 国产凹凸视频在线观看| 青青草国产一区二区三区| 香蕉久久国产精品免| 美女国内精品自产拍在线播放| 久久精品娱乐亚洲领先| 国产极品美女在线观看| 不卡午夜视频| 91国内视频在线观看| 欧美日本中文| 欧美日韩高清| 久青草国产高清在线视频| 国产成人av大片在线播放| 最新国产成人剧情在线播放| 国产欧美一区二区三区视频在线观看| 亚洲日韩日本中文在线| 免费精品一区二区h| 波多野结衣久久高清免费| 久无码久无码av无码| 99久视频| 在线a视频免费观看| 99这里只有精品免费视频| a级毛片免费播放| 国产青青草视频| 免费三A级毛片视频| h网址在线观看| 国产一区三区二区中文在线| 国产美女在线观看|