日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jenkins X:基于Kubernetes的CI/CD平台

發(fā)布時間:2025/1/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jenkins X:基于Kubernetes的CI/CD平台 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景

Jenkins自動化服務器一直都是DevOps工具鏈的重要組成部分,并且已發(fā)展成為開源持續(xù)集成和持續(xù)部署(CI&CD)軟件的領導者。據(jù)不完全統(tǒng)計,截至2019年6月,已有將近26萬的Jenkins服務器以及超過2900萬的Jenkins任務在全世界范圍內(nèi)運行著,而其持續(xù)保持的高增長速度更是令人感到無比驚艷。然而,Jenkins在取得巨大成功的背后,也逐漸暴露出一些痛點:

  • Jenkins服務器的單點故障問題,特別是任何宕機維護操作都可能導致git webhook事件的丟失;
  • Jenkins服務經(jīng)常會將磁盤占滿,需要腳本或者人工清理才能使服務繼續(xù)運行;
  • Jenkins版本升級帶來的插件版本不匹配等。

Jenkins Active Installations

(數(shù)據(jù)來源: https://stats.jenkins.io/)

在Jenkins高速發(fā)展的同時,云計算和容器技術的發(fā)展也不斷重塑著云時代的基礎設施,軟件架構,部署發(fā)布,研發(fā)過程和組織文化:Kubernetes在容器編排領域的一枝獨秀,微服務和云原生應用解決方案也日臻成熟,應用架構的細分和服務間的解耦使得服務有了獨立發(fā)布的能力。在這個云原生時代,微服務架構下的持續(xù)集成和持續(xù)交付需求也渴望著更加靈活的解決方案,于是Jenkins X應運而生。

Jenkins X是什么?

Jenkins X 是基于 Kubernetes 的CI&CD平臺,復用Jenkins自身的能力,以解決微服務架構下云原生應用的持續(xù)交付的問題,簡化整個云原生應用的開發(fā)、運行和部署過程。

所以Jenkins X = Jenkins + Kubernetes ?答案顯然是否定的,Jenkins X想要做的遠非如此!

Jenkins X 其實是重新構思了云原生時代下的研發(fā)工程師與 CI/CD的交互方式,依然采用原生的Jenkins作為流水線持續(xù)交付引擎,但是提供了一個良好封裝的接口命令行工具來完成與系統(tǒng)的交互。通過整合自動化工具,以落地DevOps最佳實踐,從而改善了研發(fā)過程中的復雜環(huán)節(jié),讓研發(fā)可以專注于價值創(chuàng)造,其他的事情通通交由Jenkins X來幫你解決,其設計理念深受DevOps年度報告和近來大熱的《Accelerate》一書的影響。《Accelerate》中總結了一組有助于實施 DevOps 的能力,Jenkins X實現(xiàn)了以下能力以幫助用戶以開箱即用的方式獲得被科學證實過的顯著收益。

Jenkins X架構

Jenkins X 基于松耦合架構的 DevOps 模型,被設計用來支持在多個團隊間,部署大量可重復、可管理的分布式微服務。在Jenkins X的設計中,整合了Helm,Draft,GitOps,以及Nexus,chartmuseum,monocular等諸多新系統(tǒng)和工具,從而實現(xiàn)自動構建編譯環(huán)境,生成容器鏡像,流水線,自動化部署,并通過簡單的Review實現(xiàn)不同環(huán)境間的自動發(fā)布。

Jenkins X 的新特性

1完美封裝的命令行工具

Jenkins X 帶來了一個方便使用的命令行工具 jx :

  • 安裝 Jenkins X 到已經(jīng)存在的 Kubernetes 集群
  • 創(chuàng)建一個新的 kubernetes 集群 并安裝Jenkins X
  • 導入項目到Jenkins X 中以及他們的持續(xù)部署流水線設置
  • 創(chuàng)建新的Spring Boot應用 并導入Jenkins X 中,以及他們的持續(xù)部署流水線設置

2自動化流水線

  • 選擇項目類型自動生成Jenkinsfile定義流水線
  • 自動生成Dockerfile并打包容器鏡像
  • 自動創(chuàng)建Helm Chart并運行在Kubernetes集群
  • 自動關聯(lián)代碼庫和流水線,作為代碼變更自動觸發(fā)(基于Webhook實現(xiàn))
  • 自動版本號自動歸檔

3基于GitOps的部署升級

  • 所有的環(huán)境,應用列表,版本,配置信息統(tǒng)一放在代碼庫中進行版本控制
  • 通過Pull Request實現(xiàn)研發(fā)和運維的協(xié)同,完成應用部署升級(Promotion)
  • 可自動部署和手動部署,在必要的時候增加手工Review
  • 當然這些都封裝在jx命令中實現(xiàn)

4預覽環(huán)境和信息同步反饋

  • 預覽環(huán)境用于代碼Merge到主分支之前的臨時創(chuàng)建
  • 同Pull Request工作流程集成并實現(xiàn)信息同步和有效通知
  • 驗證完畢后自動清理
  • 提交和應用狀態(tài)自動同步到Github注釋
  • 自動生成release notes信息供驗證

Jenkins X 的核心組件

Jenkins

Jenkins X并非全新的一個全新的Jenkins,它依然采用Jenkins 2.0作為持續(xù)交付的核心引擎,并且?guī)椭鶭enkins自身完成云原生應用時代的轉(zhuǎn)型。

Helm

Helm是用于管理Kubernetes資源對象的工具,類似APT,YUM和HOMEBREW,通過將Kubernetes的資源對象打包成Chart的形式,完成復雜應用的部署和版本控制,是目前業(yè)界流行的解決方案。

Draft

Draft是自動化應用構建并使之運行在Kubernetes上面的工具,具有語言識別能力,能夠自動生成構建腳本,依賴,環(huán)境并打包成docker鏡像并部署在Kubernetes集群上,加快代碼開發(fā)節(jié)奏,而無需關心基礎設施層面的技術實現(xiàn)。

GitOps

GitOps是weaveworks基于自己多年Kubernetes實踐推出的應用部署解決方案,它將Git作為整個應用部署的單一可信數(shù)據(jù)源(SSOT),通過類似代碼開發(fā)的Pull Request流程完成應用部署的Review和自動化實現(xiàn),并且將部署配置信息納入版本控制。

Jenkins X 的安裝

1獲取JX

在一切工作開始之前,你需要在機器上安裝對應的jx二進制包。在MacOS上,可以使用brew:

2創(chuàng)建新的K8S集群

Jenkins X支持在主流公有云平臺(AWS, GKE, Azure)上創(chuàng)建新的Kubernetes集群,同時還支持minikube的local環(huán)境。

只需要通過命令“jx create cluster ”就可以完成集群的創(chuàng)建和Jenkins X的安裝。

如果想在已有的kubernetes集群中安裝Jenkins X,則可以直接使用“jx install”來完成。

參考資料:

https://jenkins-x.io/

https://github.com/Azure/draft https://helm.sh/

https://www.weave.works/technologies/gitops/

https://book.douban.com/subject

https://zhuanlan.zhihu.com/p/75348768

總結

以上是生活随笔為你收集整理的Jenkins X:基于Kubernetes的CI/CD平台的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。