国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Jenkins + Argo 實現(xiàn)多集群的持續(xù)交付

這篇具有很好參考價值的文章主要介紹了基于Jenkins + Argo 實現(xiàn)多集群的持續(xù)交付。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

作者:周靖峰,青云科技容器顧問,云原生愛好者,目前專注于 DevOps,云原生領(lǐng)域技術(shù)涉及 Kubernetes、KubeSphere、Argo。

前文概述

前面我們已經(jīng)掌握了如何通過 Jenkins + Argo CD 的方式實現(xiàn)單集群的持續(xù)交付,明白了整個 CI/CD 過程中不同工具在流水線中的關(guān)系。所以接下來我們將更深入的了解 Argo CD 的特性。

前文鏈接:KubeSphere DevOps 基于 Jenkins + Argo 實現(xiàn)單集群的持續(xù)交付實踐。

KubeSphere 配置

集群配置

這里我們需要準(zhǔn)備至少 2 個集群,并且需要開啟多集群組件、DevOps 組件。

因為 KubeSphere 已經(jīng)內(nèi)置了 Argo,所以只要被 KubeSphere 所管理的集群會自動注冊上 Argo。

jenkins+argocd實踐,k8s,容器平臺,kubesphere,云計算

DevOps 配置

這里我們依舊要準(zhǔn)備一個 Git 倉庫, 這里仍然是使用我們之前的倉庫例子。

https://github.com/Feeeenng/devops-maven-sample.git

不過需要注意,這次我們需要選擇 multi-cluster 分支。

jenkins+argocd實踐,k8s,容器平臺,kubesphere,云計算

Argo CD 部分

ApplicationSet

這里主要介紹 ArgoCD 的一個控制器 ApplicationSet controller

此控制器追加了對跨多集群以及 monorepos 的支持。該項目以前是一個獨立項目,后在 Argo CD v2.3 版本中合入主分支。

ApplicationSet 控制器主要應(yīng)用場景:

  • 通過 Argo CD 單一 Kubernetes 資源管理應(yīng)用發(fā)布多集群;
  • 單一 Kubernetes 資源發(fā)布一個 Git 或者多個 Git 倉庫來部署多個應(yīng)用;
  • 增加了 monorepos 的支持;
  • 多租戶集群模式下,提高了單個集群租戶使用 Argo CD 部署能力。

Generators

ApplicationSet 主要通過 generators 來實現(xiàn)對資源的定義, 通過 template 來實現(xiàn)參數(shù)值的替換。目前主要支持以下幾種:

  • List generator:基于集群名/URL 值的固定列;
  • Cluster generator:基于 Argo CD 自定義方式;
  • Git generator:基于 Git 存儲中包含的文件或文件夾;
  • Matrix generator:基于上述兩種生成器的組合方式。

更多的方式參考地址: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators/

實踐操作

這次我們使用 List generator 的方式生成配置模版。

代碼目錄 deploy 下包含一個文件 applicationset.yaml 。

# 采用 List generator 方式進(jìn)行生成
# 集群信息都注入在配置里面
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: devops-maven-sample
spec:
generators:
  - list:
      elements:
      - cluster: dev
        url: https://kubernetes.default.svc
      - cluster: test
        url: https://172.31.73.92:6443

開啟 OnDeletion 配置

preserveResourcesOnDeletion 參數(shù)表示刪除 ApplicationSet 資源以后,通過模版自動生成出來的 Application 一并刪除。

請注意,生產(chǎn)環(huán)境不建議開啟這個參數(shù)!

  syncPolicy:
    preserveResourcesOnDeletion: true

更多模版配置參考: https://argo-cd.readthedocs.io/en/stable/user-guide/application-specification/

配置同步策略

配置 Application CRD 同步策略。

CreateNamespace 自動創(chuàng)建 namespace。

PrunePropagationPolicy 刪除采用友好刪除方式策略。

prune 默認(rèn)情況下,Argo CD 考慮安全機(jī)制不會自動同步 Git 資源變更操作,這里手動開啟。確保當(dāng)我們 Git 進(jìn)行變更以后,Argo 會自動進(jìn)行 Git 修改部署資源。

      syncPolicy:
        syncOptions:
        - CreateNamespace=true
        - PrunePropagationPolicy=foreground
        automated:
          prune: true

更多描述查看地址: https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/

模版定義

通過上述 List generator 的定義參數(shù),對應(yīng)好模版,這種類型都屬于 Key/Values 類型。

      source:
        repoURL: https://github.com/Feeeenng/devops-maven-sample.git
        targetRevision: multi-cluster
        path: deploy/{{cluster}}
      destination:
        server: '{{url}}'
        namespace: multi-demo

最后運行流水行以后,等待流水線執(zhí)行完畢。Argo 自動進(jìn)行 GitOps 觸發(fā)管理同步。

jenkins+argocd實踐,k8s,容器平臺,kubesphere,云計算

然后進(jìn)入 KubeSphere 界面,配置 Argo 設(shè)置為 NodePort 類型 觀察 web 界面。

jenkins+argocd實踐,k8s,容器平臺,kubesphere,云計算

打開 Argo CD UI 界面,這里我配置了 Argo CD 對接 KubeSphere 的 LDAP。

所以可以通過 KubeSphere 的賬號密碼進(jìn)行登錄。如果沒有配置的話,默認(rèn)密碼需要執(zhí)行下面命令進(jìn)行查看。

kubectl get secret -n argocd argocd-initial-admin-secret

jenkins+argocd實踐,k8s,容器平臺,kubesphere,云計算

這個時候我們能夠看到,我們剛才通過 Jenkins pipeline 運行的流水線已經(jīng)成功。并且 Argo CD 也已經(jīng)自動同步發(fā)布應(yīng)用。

jenkins+argocd實踐,k8s,容器平臺,kubesphere,云計算

回到 KubeSphere 界面上觀察應(yīng)用部署情況能夠看到,我們所發(fā)布的 2 個集群也已經(jīng)正常部署完成。

Dev 集群: jenkins+argocd實踐,k8s,容器平臺,kubesphere,云計算

Test 集群: jenkins+argocd實踐,k8s,容器平臺,kubesphere,云計算

至此,我們使用 Jenkins 完成了通過 Argo CD 來部署多集群的應(yīng)用發(fā)布。

后續(xù)

當(dāng)前例子使用的是簡單的列表生成器的方式,但 ApplicationSet 的控制器其實也支持更多復(fù)雜的場景。比如通過 Git Generator 的方式只定義一個配置參數(shù),滿足多個應(yīng)用的發(fā)布支持。這樣也能夠把應(yīng)用代碼跟配置代碼進(jìn)行分離。從而開發(fā)跟運維互不影響。

參考文檔:

  • https://argo-cd.readthedocs.io/en/stable/
  • https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/
  • https://argo-cd.readthedocs.io/en/stable/user-guide/application-specification/
  • https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators/
  • https://github.com/Feeeenng/devops-maven-sample

本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!文章來源地址http://www.zghlxwxcb.cn/news/detail-853993.html

到了這里,關(guān)于基于Jenkins + Argo 實現(xiàn)多集群的持續(xù)交付的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 持續(xù)集成交付CICD:Jenkins Pipeline與遠(yuǎn)程構(gòu)建觸發(fā)器

    持續(xù)集成交付CICD:Jenkins Pipeline與遠(yuǎn)程構(gòu)建觸發(fā)器

    目錄 一、實驗 1.Jenkins Pipeline本地構(gòu)建觸發(fā)器 2.Jenkins Pipeline與遠(yuǎn)程構(gòu)建觸發(fā)器(第一種方式) 3.Jenkins Pipeline與遠(yuǎn)程構(gòu)建觸發(fā)器(第二種方式) 4.Jenkins Pipeline與遠(yuǎn)程構(gòu)建觸發(fā)器(第三種方式) 二、問題 1.pipeline插件依賴安裝報錯 2.控制臺輸出環(huán)境變量名沖突 3.并行構(gòu)建job存在

    2024年02月03日
    瀏覽(28)
  • 在CSDN學(xué)Golang云原生(持續(xù)交付Argo)

    Argo是一個基于Kubernetes的容器本地工作流引擎,可以幫助用戶在Kubernetes上創(chuàng)建、運行和維護(hù)容器化應(yīng)用程序。下面是Argo安裝配置的步驟: 首先確保你已經(jīng)安裝了kubectl和helm 添加chart倉庫 創(chuàng)建namespace 安裝 Argo CD 其中, server.extraArgs={--insecure} ?表示允許不受信任的證書。 rbac.

    2024年02月15日
    瀏覽(19)
  • 『DevOps最佳實踐』使用Jenkins和Harbor進(jìn)行持續(xù)集成和交付的解決方案

    『DevOps最佳實踐』使用Jenkins和Harbor進(jìn)行持續(xù)集成和交付的解決方案

    ??讀完這篇文章里你能收獲到 全文采用圖文形式講解 學(xué)會使用Harbor配置項目 學(xué)會在Jenkins中配置Harbor推送權(quán)限 使用Jenkins和Harbor進(jìn)行持續(xù)集成的實踐 感謝點贊+收藏,避免下次找不到~ 在現(xiàn)代軟件開發(fā)中,自動化部署是提高效率和可靠性的關(guān)鍵。本文將帶你深入探索如何使用

    2024年02月08日
    瀏覽(26)
  • 基于K8s環(huán)境·使用ArgoCD部署Jenkins和靜態(tài)Agent節(jié)點

    基于K8s環(huán)境·使用ArgoCD部署Jenkins和靜態(tài)Agent節(jié)點

    今天是「DevOps云學(xué)堂」與你共同進(jìn)步的第? 47 天 第⑦期DevOps實戰(zhàn)訓(xùn)練營· 7月15日已開營 實踐環(huán)境升級基于K8s和ArgoCD 本文節(jié)選自第⑦期DevOps訓(xùn)練營?, 對于訓(xùn)練營的同學(xué)實踐此文檔依賴于基礎(chǔ)環(huán)境配置文檔, 運行K8s集群并配置NFS存儲。實際上只要有個K8s集群并安裝好Ingress、

    2024年02月15日
    瀏覽(21)
  • 基于Jenkins實現(xiàn)Docker應(yīng)用的持續(xù)集成與部署

    基于Jenkins實現(xiàn)Docker應(yīng)用的持續(xù)集成與部署

    1. 服務(wù)器部署安裝有docker 在docker應(yīng)用開發(fā)中最常見的就是開發(fā)Dockerfile文件,可以使用代碼倉庫來管理它。 而在企業(yè)私有開發(fā)環(huán)境中是無法訪問公有代碼倉庫(如Github)的。這時可以搭建私有代碼倉庫。 安裝軟件 sudo yum install -y subversion mod_dav_svn 創(chuàng)建svn倉庫 sudo mkdir -p /srv/s

    2023年04月20日
    瀏覽(16)
  • ArgoCD結(jié)合Gitlab交付項目到kubernetes集群

    ArgoCD結(jié)合Gitlab交付項目到kubernetes集群

    作者:行癲(盜版必究) 1.kubernetes集群環(huán)境 2.HA_Argocd環(huán)境 3.Gitlab集群環(huán)境 1.配置Gitlab 創(chuàng)建倉庫,并寫入yaml文件,利用yaml構(gòu)建application;此案例結(jié)合了NFS實現(xiàn)持久化存儲

    2024年02月16日
    瀏覽(20)
  • 一文1000字基于Jenkins實現(xiàn)接口自動化持續(xù)集成!

    一文1000字基于Jenkins實現(xiàn)接口自動化持續(xù)集成!

    一、JOB項目配置 1、添加描述 可選選項可填可不填 2、限制項目的運行節(jié)點 節(jié)點中要有運行環(huán)境所需的配置 節(jié)點配置教程: https://blog.csdn.net/YZL40514131/article/details/131504280 3、源碼管理 需要將腳本推送到遠(yuǎn)程倉庫中 4、構(gòu)建觸發(fā)器 可以選擇定時構(gòu)建和輪詢SCM 定時構(gòu)建 :根據(jù)設(shè)

    2024年02月07日
    瀏覽(23)
  • Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成之集群部署

    Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成之集群部署

    ? idea中修改注冊中心eureka的配置,單節(jié)點換成集群 ? 在啟動微服務(wù)的時候,加入?yún)?shù): spring.pro?les.active 來讀取對應(yīng)的配置 網(wǎng)關(guān)服務(wù)配置 ? 權(quán)限管理配置 ? 業(yè)務(wù)模塊配置 ? ? ? 該插件可以支持多選框 ? ? ? ? 逗號必須得是英文,否則出錯 ? ? ? 循環(huán)測試代碼檢查 ? ? ?

    2024年02月07日
    瀏覽(21)
  • Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成項目優(yōu)化和微服務(wù)集群

    Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成項目優(yōu)化和微服務(wù)集群

    基于 Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成 作優(yōu)化 上面部署方案存在的問題: 一次只能選擇一個微服務(wù)部署 只有一臺生產(chǎn)者部署服務(wù)器 每個微服務(wù)只有一個實例,容錯率低 優(yōu)化方案: 在一個Jenkins工程中可以選擇多個微服務(wù)同時發(fā)布 在一個Jenkins工程中可以選擇多臺生產(chǎn)服務(wù)

    2024年02月13日
    瀏覽(64)
  • k8s的jenkins部署java項目到k8s集群cicd持續(xù)集成

    k8s的jenkins部署java項目到k8s集群cicd持續(xù)集成

    k8s1.16.0-k8s的jenkins部署java項目到k8s集群cicd(ci成,cd手動部署的) 注意: 本文檔只是實現(xiàn)了ci,cd是通過ci生成的鏡像,再手工再k8s-master執(zhí)行的部署(只因pod部署的jenkins連接k8s的認(rèn)證不知怎么操作,若jenkins是單獨部署在k8s-master機(jī)器上,能直接在master執(zhí)行kubectl命令就沒這個問題了

    2024年02月03日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包