本篇文章為大家展示了如何實(shí)現(xiàn)規(guī)模化的Kubernetes CI/CD 流水線,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、科爾沁左翼ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的科爾沁左翼網(wǎng)站制作公司
在近幾年,Kubernetes迅速成為了容器編排的事實(shí)上的開(kāi)源標(biāo)準(zhǔn)。與虛擬機(jī)不同,Kubernetes在抽象化基礎(chǔ)架構(gòu)的同時(shí)可靠地大規(guī)模編排容器,這可以幫助開(kāi)發(fā)人員將工作負(fù)載與基礎(chǔ)架構(gòu)的復(fù)雜性分開(kāi)。Kubernetes是CI/CD自動(dòng)化的理想選擇,因?yàn)樗峁┝嗽S多內(nèi)置功能,這些功能使應(yīng)用程序部署實(shí)現(xiàn)標(biāo)準(zhǔn)化和可重用,提高了開(kāi)發(fā)人員的生產(chǎn)力,并加快了云原生應(yīng)用程序的采用。
Platform9是成立于2013年的云服務(wù)提供商,能夠提供業(yè)界唯一由SaaS管理的混合云解決方案,使用戶能夠快速采用云技術(shù)并在私有部署或公共云中的任何基礎(chǔ)架構(gòu)上一致地管理VM、Kubernetes和無(wú)服務(wù)器功能。Platform9提供的Kubernetes解決方案也是業(yè)界的佼佼者。
在2019年巴塞羅那舉行的KubeCon + CloudNativeCon大會(huì)上,Platform9與1000多名與會(huì)者進(jìn)行了互動(dòng),有近500名與會(huì)者參與了Kubernetes的相關(guān)調(diào)查。下圖列出了關(guān)于最常見(jiàn)的Kubernetes應(yīng)用場(chǎng)景的調(diào)查結(jié)果:
其中,基于Kubernetes的CI/CD自動(dòng)化是最為廣泛的用例,專(zhuān)注于幫助開(kāi)發(fā)人員更快地構(gòu)建和交付應(yīng)用程序。但是,在具有全自動(dòng)和可重復(fù)的CI/CD流水線的生產(chǎn)環(huán)境中運(yùn)行Kubernetes(k8s)以及持續(xù)的安全檢查會(huì)帶來(lái)新的挑戰(zhàn),包括集成的復(fù)雜性,持續(xù)的產(chǎn)品更新/回滾、自運(yùn)維、生命周期管理等等。
解決這些挑戰(zhàn)并沒(méi)有想象中的困難,本文將介紹Platform9如何利用JFrog的產(chǎn)品在Kubernetes上快速實(shí)現(xiàn)CI/CD自動(dòng)化并將其推廣到整個(gè)組織的方法。
在Platform9提供的方案中,JFrog Artifactory作為微服務(wù)的Docker注冊(cè)表(或多個(gè)注冊(cè)表),是構(gòu)建CI/CD流水線不可或缺的一部分。同時(shí),使用Artifactory作為Helm Chart存儲(chǔ)庫(kù),進(jìn)一步使該制品管理倉(cāng)庫(kù)能夠提供將容器部署到k8s集群所需的所有集成資源。
Artifactory還可以作為遠(yuǎn)程依賴(lài)的代理倉(cāng)庫(kù),例如npm、Maven、Gradle和Go等,實(shí)現(xiàn)安全的Kubernetes注冊(cè)表,使您能夠跟蹤系統(tǒng)中端到端的內(nèi)容、依賴(lài)關(guān)系,以及與其他Docker鏡像的關(guān)系。
5步實(shí)現(xiàn)Kubernetes CI/CD流水線:
· 步驟1.使用Artifactory中代理的注冊(cè)表來(lái)開(kāi)發(fā)微服務(wù)。生成的應(yīng)用程序包可以是.war或.jar文件;
· 步驟2.在Ubuntu上使用Tomcat和Java-8創(chuàng)建Docker框架作為基礎(chǔ)鏡像。將此鏡像推送到Artifactory中的Docker注冊(cè)表中,JFrog Xray也會(huì)對(duì)其進(jìn)行掃描,以確保安全性和許可證合規(guī)性。
· 步驟3.通過(guò)將.war或.jar文件添加到Docker框架中,為微服務(wù)創(chuàng)建Docker鏡像,將該鏡像推送到Artifactory中的Docker注冊(cè)表中,并通過(guò)Xray對(duì)其進(jìn)行掃描。
· 步驟4.為微服務(wù)創(chuàng)建Helm Chart,并將其推送到Artifactory中的Helm存儲(chǔ)庫(kù)。
· 步驟5.使用Helm Chart將微服務(wù)從安全的Docker注冊(cè)表部署到Kubernetes集群。
在上述流水線當(dāng)中,除了負(fù)責(zé)制品倉(cāng)庫(kù)管理,Artifactory還可以提供質(zhì)量的可審核性,因?yàn)樗东@了整個(gè)CI/CD流程中產(chǎn)生的所有大量有價(jià)值的元數(shù)據(jù),包含:
· 構(gòu)建和環(huán)境信息
· 模塊的依賴(lài)關(guān)系
· CI服務(wù)器,如Jenkins,提供的相關(guān)信息
· 發(fā)布模塊及其依賴(lài)的詳細(xì)許可證分析
· 發(fā)布?xì)v史信息等
使用Artifactory,可以跟蹤負(fù)責(zé)生成應(yīng)用程序?qū)樱ɡ鏦AR文件)的CI任務(wù),該應(yīng)用程序?qū)邮荄ocker鏡像層的一部分。通過(guò)比較兩次構(gòu)建,可以顯示構(gòu)建之間的差異,從而輕松跟蹤哪個(gè)構(gòu)建發(fā)布到了Docker鏡像的哪個(gè)層,近而繼續(xù)跟蹤到代碼的提交。
3.1 JFrog Artifactory和Xray確保軟件交付的自動(dòng)化
Artifactory是一個(gè)通用的制品倉(cāng)庫(kù)管理平臺(tái),無(wú)論組織中的微服務(wù)在哪里運(yùn)行,它都可以滿足所有CI/CD的需求。Artifactory通過(guò)提供完全的Docker兼容性,使開(kāi)發(fā)人員能夠?qū)⑷萜骰奈⒎?wù)部署到Kubernetes集群中。將應(yīng)用程序包推送到Artifactory倉(cāng)庫(kù)后,您可以在開(kāi)發(fā)、測(cè)試和發(fā)布階段繼續(xù)驗(yàn)證和升級(jí)您的容器,最后將其部署到Kubernetes中的生產(chǎn)集群。如之前的分析,Artifactory還為所有應(yīng)用程序包提供了完整的可審核性和可追溯性。
JFrog Xray對(duì)Docker鏡像執(zhí)行深度遞歸掃描,并識(shí)別所有層和依賴(lài)項(xiàng)中的安全漏洞。它還會(huì)檢查以確保所有軟件組件的許可證均符合組織的策略。這有助于阻止易受攻擊且不合規(guī)的軟件投入生產(chǎn)。而且,Xray提供的持續(xù)掃描能力,可以確保發(fā)現(xiàn)新問(wèn)題或更改策略時(shí)的持續(xù)安全性。
3.2 Helm Charts使CI/CD工具部署自動(dòng)化
一旦您的Kubernetes基礎(chǔ)架構(gòu)啟動(dòng)并運(yùn)行,Kubernetes Helm便使您能夠通過(guò)輕松安裝、更新和刪除來(lái)快速可靠地配置容器應(yīng)用程序。它為開(kāi)發(fā)人員提供了一種打包應(yīng)用程序并與Kubernetes社區(qū)共享的工具。它使軟件供應(yīng)商只需按一下按鈕即可提供其容器化的應(yīng)用程序。通過(guò)一個(gè)命令或單擊幾下鼠標(biāo),用戶就可以為開(kāi)發(fā)測(cè)試或生產(chǎn)環(huán)境安裝Kubernetes應(yīng)用程序。大多數(shù)流行的CI/CD工具集都可以通過(guò)Helm chart獲得。
Platform9應(yīng)用目錄為Helm圖表提供了易于訪問(wèn)的按鈕式部署。您可以使用App Catalog UI來(lái)選擇和部署您喜歡的CI/CD流水線工具(例如,Jenkins、Spinnaker、Artifactory、Xray等)。您可以搜索,一鍵部署或配置它。(圖三)
如果您要解決的主要業(yè)務(wù)問(wèn)題,與提高開(kāi)發(fā)人員的生產(chǎn)力,將軟件更快地推向市場(chǎng),以及在生產(chǎn)環(huán)境中運(yùn)行可靠的應(yīng)用程序有關(guān),那么您是否值得花時(shí)間處理運(yùn)維Kubernetes的麻煩和復(fù)雜性?您是否擁有人員和技能來(lái)工作和運(yùn)維大型Kubernetes集群?
運(yùn)維您自己的大規(guī)模Kubernetes基礎(chǔ)架構(gòu)令人生畏。錯(cuò)誤選擇的后果是持久的,并且會(huì)影響應(yīng)用程序的可用性、性能和敏捷性。雖然在短期內(nèi)內(nèi)部構(gòu)建解決方案可能會(huì)更便宜,但您的設(shè)計(jì)質(zhì)量可能較低,或者存在一些缺陷。這些缺陷在您投入生產(chǎn)后才會(huì)意識(shí)到,從而最終會(huì)花費(fèi)更多的錢(qián)。
雖然安裝和管理Kubernetes不會(huì)推動(dòng)業(yè)務(wù)向前發(fā)展,但快速為客戶部署新的應(yīng)用程序和版本卻可以。對(duì)于開(kāi)發(fā)人員,Kubernetes的最終用戶,平臺(tái)可用性是關(guān)鍵。他們不在乎是誰(shuí)建造它或如何建造它的:他們只是想動(dòng)手實(shí)踐它,并使其運(yùn)轉(zhuǎn)良好。
盡管開(kāi)發(fā)人員不關(guān)心集群的實(shí)現(xiàn)細(xì)節(jié)或其運(yùn)維狀態(tài),但是仍然需要有人進(jìn)行運(yùn)維工作以確保集群是最新、健康且安全的。Platform9管理您的Kubernetes環(huán)境,為您提供全自動(dòng)運(yùn)維,并在裸機(jī)、VMware、公共云或邊緣節(jié)點(diǎn)上實(shí)現(xiàn)99.9%的SLA。這使您的DevOps團(tuán)隊(duì)可以騰出時(shí)間專(zhuān)注于重要的事情:通過(guò)更快地構(gòu)建更好的應(yīng)用程序來(lái)響應(yīng)客戶需求。(圖四)
通過(guò)上述Platform9推薦的解決方案來(lái)看,基于JFrog的Artifactory和Xray,結(jié)合Helm Chart,能夠方便、快捷、清晰地搭建適用于規(guī)?;疜ubernetes集群的CI/CD自動(dòng)化流水線。該方案在保證應(yīng)用構(gòu)建和交付的快速、安全、可重復(fù)的同時(shí),還能為所有交付的應(yīng)用提供完整的可審核性和可追溯性。
上述內(nèi)容就是如何實(shí)現(xiàn)規(guī)?;腒ubernetes CI/CD 流水線,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。