5步實現規模化的Kubernetes CI/CD 流水線

一、背景
在近幾年,Kubernetes迅速成爲了容器編排的事實上的開源標準。與虛擬機不同,Kubernetes在抽象化基礎架構的同時可靠地大規模編排容器,這可以幫助開發人員將工作負載與基礎架構的複雜性質分開。Kubernetes是CI/CD自動化的理想選擇,因爲它提供了許多內置功能,這些功能使應用程序部署實現標準化和可重用,提高了開發人員的生產力,並加快了雲原生應用程序的採用。
Platform9是成立於2013年的雲服務提供商,能夠提供業界唯一由SaaS管理的混合雲解決方案,使用戶能夠快速採用雲技術並在私有部署或公共雲中的任何基礎架構上一致地管理VM、Kubernetes和無服務器功能。Platform9提供的Kubernetes解決方案也是業界的佼佼者。

在2019年巴塞羅那舉行的KubeCon + CloudNativeCon大會上,Platform9與1000多名與會者進行了互動,有近500名與會者參與了Kubernetes的相關調查。下圖列出了關於最常見的Kubernetes應用場景的調查結果:

其中,基於Kubernetes的CI/CD自動化是最爲廣泛的用例,專注於幫助開發人員構建和交付應用程序。但是,在具有全自動和可重複的CI/CD流水線的生產環境中運行Kubernetes(k8s)以及持續的安全檢查會帶來新的挑戰,包括集成的複雜性,持續的產品更新/回滾、自運維、生命週期管理等等。 

解決這些挑戰並沒有想象中的困難,本文將介紹Platform9如何利用JFrog的產品在Kubernetes上快速實現CI/CD自動化並將其推廣到整個組織的方法。

二、使用Artifactory和Helm的5步Kubernetes CI / CD流水線
在Platform9提供的方案中,JFrog Artifactory作爲微服務的Docker註冊表(或多個註冊表),是構建CI/CD流水線不可或缺的一部分。同時,使用Artifactory作爲Helm Chart存儲庫,進一步使該製品管理倉庫能夠提供將容器部署到k8s集羣所需的所有集成資源。
Artifactory還可以作爲遠程依賴的代理倉庫,例如npm、Maven、Gradle和Go等,實現安全的Kubernetes註冊表,使您能夠跟蹤系統中端到端的內容、依賴關係,以及與其他Docker鏡像的關係。

5步實現Kubernetes CI/CD流水線:

步驟1.使用Artifactory中代理的註冊表來開發微服務。生成的應用程序包可以是.war或.jar文件;
步驟2.在Ubuntu上使用Tomcat和Java-8創建Docker框架作爲基礎鏡像。將此鏡像推送到Artifactory中的Docker註冊表中,JFrog Xray也會對其進行掃描,以確保安全和許可證合規性。
步驟3.通過將.war或.jar文件添加到Docker框架中,爲微服務創建Docker鏡像,將該鏡像推送到Artifactory中的Docker註冊表中,並通過Xray對其進行掃描。
步驟4.爲微服務創建Helm Chart,並將其推送到Artifactory中的Helm存儲庫。
步驟5.使用Helm Chart將微服務從安全的Docker註冊表部署到Kubernetes集羣。
在上述流水線當中,除了負責製品倉庫管理,Artifactory還可以提供質量的可審覈性,因爲它捕獲了整個CI/CD流程中產生的所有大量有價值的元數據,包含:
構建和環境信息
模塊的依賴關係
CI服務器,如Jenkins,提供的相關信息
發佈模塊及其依賴的詳細許可證分析
發佈歷史信息等

使用Artifactory,可以跟蹤負責生成應用程序層(例如WAR文件)的CI任務,該應用程序層是Docker鏡像層的一部分。通過比較兩次構建,可以顯示構建之間的差異,從而輕鬆跟蹤哪個構建發佈到了Docker鏡像的哪個層,近而繼續跟蹤到代碼的提交。

三、流水線特性解析

3.1 JFrog Artifactory和Xray確保軟件交付的自動化
Artifactory是一個通用的製品倉庫管理平臺,無論組織中的微服務在哪裏運行,它都可以滿足所有CI/CD的需求。Artifactory通過提供完全的Docker兼容性,使開發人員能夠將容器化的微服務部署到Kubernetes集羣中。將應用程序包推送到Artifactory倉庫後,您可以在開發、測試和發佈階段繼續驗證和升級您的容器,最後將其部署到Kubernetes中的生產集羣。如之前的分析,Artifactory還爲所有應用程序包提供了完整的可審覈性和可追溯性。
JFrog Xray對Docker鏡像執行深度遞歸掃描,並識別所有層和依賴項中的安全漏洞。它還會檢查以確保所有軟件組件的許可證均符合組織的策略。這有助於阻止不合規的軟件投入生產。而且,Xray提供的持續掃描能力,可以確保發現新問題或更改策略時的持續安全性。
3.2 Helm Charts使CI/CD工具部署自動化
一旦您的Kubernetes基礎架構啓動並運行,Kubernetes Helm便使您能夠通過輕鬆安裝、更新和刪除來快速可靠地配置容器應用程序。它爲開發人員提供了一種打包應用程序並與Kubernetes社區共享的工具。它使軟件供應商只需按一下按鈕即可提供其容器化的應用程序。通過一個命令或單擊幾下鼠標,用戶就可以爲開發測試或生產環境安裝Kubernetes應用程序。大多數流行的CI/CD工具集都可以通過Helm chart獲得。
Platform9應用目錄爲Helm圖表提供了易於訪問的按鈕式部署。您可以使用App Catalog UI來選擇和部署您喜歡的CI/CD流水線工具(例如,Jenkins、Spinnaker、Artifactory、Xray等)。您可以搜索,一鍵部署或配置它。 

四、Platform9的託管Kubernetes服務消除了操作複雜性
如果您要解決的主要業務問題,與提高開發人員的生產力,將軟件更快地推向市場,以及在生產環境中運行可靠的應用程序有關,那麼您是否值得花時間處理運維Kubernetes的麻煩和複雜性?您是否擁有人員和技能來工作和運維大型Kubernetes集羣? 
運維您自己的大規模Kubernetes基礎架構令人生畏。錯誤選擇的後果是持久的,並且會影響應用程序的可用性、性能和敏捷性。雖然在短期內內部構建解決方案可能會更便宜,但您的設計質量可能較低,或者存在一些缺陷。這些缺陷在您投入生產後纔會意識到,從而最終會花費更多的錢。
雖然安裝和管理Kubernetes不會推動業務向前發展,但快速爲客戶部署新的應用程序和版本卻可以。對於開發人員,Kubernetes的最終用戶,平臺可用性是關鍵。他們不在乎是誰建造它或如何建造它的:他們只是想動手實踐它,並使其運轉良好。
儘管開發人員不關心集羣的實現細節或其運維狀態,但是仍然需要有人進行運維工作以確保集羣是最新、健康且安全的。Platform9管理您的Kubernetes環境,爲您提供全自動運維,並在裸機、VMware、公共雲或邊緣節點上實現99.9%的SLA。這使您的DevOps團隊可以騰出時間專注於重要的事情:通過更快地構建更好的應用程序來響應客戶需求。

五、總結
通過上述Platform9推薦的解決方案來看,基於JFrog的Artifactory和Xray,結合Helm Chart,能夠方便、快捷、清晰地搭建適用於規模化Kubernetes集羣的CI/CD自

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章