【雲原生】持續整合和部署(Jenkins)
使用 helm 安裝 Jenkins 到k8s叢集,配置CI/CD
首先,新增 repo:
helm repo add jenkins https://charts.jenkins.io
其次,建立一個 k8s 名稱空間:
kubectl create ns jenkins
接著,安裝 jenkins:
bash helm install jenkins jenkins/jenkins -n jenkins
最後,檢視登陸地址
export SERVICE_IP=$(kubectl get svc --namespace default jenkins --template '{{ range (index .status.loadBalancer.ingress 0) }}{{ .}}{{ end }}') && echo http://$SERVICE_IP:8080/login
CI/CD
CI(Continuous Integration)持續整合
CI的英文名稱是Continuous Integration,中文翻譯為:持續整合。
CI中,開發人員將會頻繁地向主幹提交程式碼,這些新提交的程式碼在最終合併到主幹前,需要經過編譯和自動化測試流進行驗證。 持續整合(CI)是在原始碼變更後自動檢測、拉取、構建和(在大多數情況下)進行單元測試的過程。持續整合的目標是快速確保開發人員新提交的變更是好的,並且適合在程式碼庫中進一步使用。CI的流程執行和理論實踐讓我們可以確定新程式碼和原有程式碼能否正確地整合在一起。
CI 的目標是將整合簡化成一個簡單、易於重複的日常開發任務, 這樣有助於降低總體的構建成本並在開發週期的早期發現缺陷。 要想有效地使用 CI 必須轉變開發團隊的習慣,要鼓勵頻繁迭代構建, 並且在發現 bug 的早期積極解決。
CD (Continuous Delivery)持續交付和(Continuous Deployment)持續部署
持續交付(CD)
持續交付(CD)實際上是 CI 的擴充套件,其中軟體交付流程進一步自動化,以便隨時輕鬆地部署到生成環境中。 成熟的持續交付方案也展示了一個始終可部署的程式碼庫。使用 CD 後,軟體釋出將成為一個沒有任何緊張感的例行事件。 開發團隊可以在日常開發的任何時間進行產品級的釋出,而不需要詳細的釋出方案或者特殊的後期測試。
完成 CI 中構建及單元測試和整合測試的自動化流程後,持續交付可自動將已驗證的程式碼釋出到儲存庫。為了實現高效的持續交付流程,務必要確保 CI 已內置於開發管道。持續交付的目標是擁有一個可隨時部署到生產環境的程式碼庫。
CD 集中依賴於部署流水線,團隊通過流水線自動化測試和部署過程。此流水線是一個自動化系統, 可以針對構建執行一組漸進的測試套件。CD 具有高度的自動化,並且在一些雲端計算環境中也易於配置。在流水線的每個階段,如果構建無法通過關鍵測試會向團隊發出警報。否則,將繼續進入下一個測試, 並在連續通過測試後自動進入下一個階段。流水線的最後一個部分會將構建部署到和生產環境等效的環境中。 這是一個整體的過程,因為構建、部署和環境都是一起執行和測試的,它能讓構建在實際的生產環境可部署和可驗證。
持續部署(CD)
持續部署擴充套件了持續交付,以便軟體構建在通過所有測試時自動部署。在這樣的流程中, 不需要人為決定何時及如何投入生產環境。CI/CD 系統的最後一步將在構建後的元件/包退出流水線時自動部署。 此類自動部署可以配置為快速向客戶分發元件、功能模組或修復補丁,並準確說明當前提供的內容。採用持續部署的組織可以將新功能快速傳遞給使用者,得到使用者對於新版本的快速反饋,並且可以迅速處理任何明顯的缺陷。 使用者對無用或者誤解需求的功能的快速反饋有助於團隊規劃投入,避免將精力集中於不容易產生回報的地方。
隨著 DevOps 的發展,新的用來實現 CI/CD 流水線的自動化工具也在不斷湧現。這些工具通常能與各種開發工具配合, 包括像 GitHub 這樣的程式碼倉庫和 Jira 這樣的 bug 跟蹤工具。此外,隨著 SaaS 這種交付方式變得更受歡迎, 許多工具都可以在現代開發人員執行應用程式的雲環境中執行,例如 GCP 和 AWS。但是對於一個成熟的CI/CD管道(Pipeline)來說,最後的階段是持續部署。作為持續交付——自動將生產就緒型構建版本釋出到程式碼儲存庫——的延伸,持續部署可以自動將應用釋出到生產環境。目前最受歡迎的自動化工具是 Jenkins。
持續部署意味著所有的變更都會被自動部署到生產環境中。持續交付意味著所有的變更都可以被部署到生產環境中,但是出於業務考慮,可以選擇不部署。如果要實施持續部署,必須先實施持續交付。持續交付並不是指軟體每一個改動都要儘快部署到產品環境中,它指的是任何的程式碼修改都可以在任何時候實施部署。持續交付表示的是一種能力,而持續部署表示的則一種方式;持續部署是持續交付的最高階段。
一旦登陸 jenkins ,可以配置一系列 CI/CD動作:
CI
拉取程式碼
構建/測試/打包
構建容器映象
CD
推送容器映象到映象中心
執行k8s命令,拉取映象
執行k8s命令,部署
執行k8s命令,滾動更新
———————————————
作者:「共飲一杯無」 原文連結:https://blog.csdn.net/qq_35427589/article/details/125940309 侵刪
- Skywalking分散式追蹤與監控:起始篇
- 如何使用 docker 搭建 hadoop 分散式叢集?
- 開源女神節——撕掉標籤,自由隨我
- 開源女神節——她說
- 大牛告訴你專案在Devops下如何測試!
- DataOps 不僅僅是資料的 DevOps!
- K8s——master擴容
- Skywalking分散式追蹤與監控:起始篇
- 這可能是最為詳細的Docker入門吐血總結
- 2023年 DevOps 七大趨勢
- k8s部署redis叢集
- DevOps20個常見問題
- Nexu私服安裝配置,IDEA打包上傳私服
- 鵝場分散式系統DevOps自動化測試實踐
- 【雲原生】持續整合和部署(Jenkins)
- k8s部署手冊-v04
- 保護 DevOps 的 5 個技巧
- CI/CD如何支撐運維自動化
- DevOps 如何幫助實現安全部署
- K8s系列-KubeSphere