《基于ACK One和ACR構建CI&CD流水線最佳實踐.pdf》由會員分享,可在線閱讀,更多相關《基于ACK One和ACR構建CI&CD流水線最佳實踐.pdf(15頁珍藏版)》請在三個皮匠報告上搜索。
1、基于ACK One和ACR構建CI/CD流水線蔡靖阿里云容器服務最佳實踐Contents目錄01GitOps概述02分布式云容器平臺ACK One03實踐介紹GitOps簡介01New Future on CloudGitOps概述GitOps是一種持續交付方式,以Git為交付核心,根據Git倉庫代碼變化,持續部署應用,使集群中的應用狀態最終與Git倉庫中的狀態保持一致??梢杂脕順嫿ㄔ圃鷳米詣踊桓舵?,基于ACK One GitOps可以進一步構建多云、多集群場景的云原生應用自動化交付鏈。GitCI PipelineImageRegistryGitCDK8S ClusterGitOps優勢
2、安全性高:開發者使用GitOps無需任何Kubernetes集群權限可靠性強:Git作為應用部署的唯一來源,提供版本控制、回滾和審計能力應用持續部署:Kubernetes集群和Git倉庫中的應用狀態自動同步分布式云容器平臺ACK One02New Future on Cloud分布式云容器平臺ACK One云上彈性多集群應用分發備份容災云上云下一致體驗統一運維與安全統一資源調度統一應用分發備份容災Open Cluster ManagementACK One3rd K8s connector公有云邊緣本地數據中心K8s 集群K8s 集群K8s 集群三方公有云K8s 集群多集群運維管理使用ACK
3、One統一管理多個K8s集群,減少25%的資源用量,提升安全水位,業務連續性和數據安全性,運維效率提高80%混合云多調度器支持IDC負載感知和云端彈性,5分鐘實現招聘業務3000+實例數萬核擴容,支持多域名服務器的的自定義DNS解析。多集群Fleet架構K8s Cluster公有云本地數據中心ACK ClusterDeployment/SvcPolicyKubernetes 資源分發網絡連接 ACK One Fleet應用分發流量控制Open Cluster Management安全策略全局監控(組件管理)(集群管理)統一控制面Multi-cluster svcDeployment/SvcPo
4、licyMulti-cluster svcServerless ArgoCDACK One FleetPlatform teamsDeveloper teamsDevelopercommitdocker pushupdatewatch and pull多集群應用分發GitOps-Managed ArgoCD 托管開源ArgoCD,提供ArgoCD原生CLI和UI體驗 專屬ArgoCD控制臺域名,集成阿里云賬號SSO登錄,支持多用戶權限設置 多集群分發,ACK One關聯集群自動加入ArgoCD,成為應用分發GitOps的目標集群 可靠性強:Git作為應用部署的唯一來源,提供版本控制、回滾和審計
5、能力 安全性高:開發者使用GitOps無需任何Kubernetes集群權限 應用持續部署:Kubernetes集群和Git倉庫中的應用狀態自動同步K8s ClusterPublic CloudOn-PremACK ClusterDeploymentIngresscompare/sync ServiceDeploymentIngressServiceGitOps優勢ACK One GitOps 應用分發優勢Open Cluster ManagementGitHelm repoContainer registry可用區 1ECI 運行工作流可用區 2ECI 運行工作流調度分布式Argo工作流集群O
6、SSMNS三方系統(Argo SDK)Gitpush commitworkflow apiargo cli/uiupload filegit eventoss eventoss eventArgo EventArgo WorkflowKubernetes控制面Event Bridge其他系統事件其他系統事件掛載數據源ARMSSLSRAM認證授權監控日志OSSNAS分布式Argo工作流集群架構實踐介紹03New Future on Cloud1.向業務倉庫代碼Gi t倉庫提交代碼2.分布式Argo工作流集群或者ACR自動運行CI任務,推送到ACR EE鏡像倉庫3.GitOps發現新的鏡像版本4.
7、GitOps回寫到應用部署代碼Git倉庫5.GitOps發現應用部署代碼Git倉庫變化,拉取部署YAML6.自動同步部署新鏡像到Stage集群,并驗證Stage集群中的應用運行是否符合預期7.手工觸發生產集群(Production)部署,并與驗證?;贏CK One與ACR的CI/CD實踐Argo CDApplication For Dev ClusterApplication For Production ClusterWatch&updateACR CI/分布式Argo工作流2 構建&推送鏡像1 提交代碼變更ACR EE3 Check鏡像變更業務代碼倉庫應用部署倉庫4 回寫變更5 pull
8、 yamlsdeploymentACK One FleetDev ClusterProduction Cluster6 自動發布7 手動發布GitOpsdeployment實踐效果1.向符合規則的業務代碼倉庫branch/Tag提交代碼后,觸發ACR CI的構建,構建出新鏡像2.ArgoCD檢測到ACR中符合條件的鏡像更新,將變更回寫業務部署倉庫:實踐效果3.回寫的變更被更新到Application上,Dev集群自動部署,Production集群等待手動觸發部署實踐步驟:1.為ACR企業版實例配置CI(關聯代碼源與設置構建規則)。2.添加應用部署Git倉庫到ACK One GitOps。3.使
9、用ArgoCD Application部署應用到多個集群,并同時配置鏡像的自動更新(image updater)。4.向業務代碼倉庫提交代碼,觸發自動化CI/CD流程。5.查看ACR企業版實例構建歷史,和鏡像倉庫鏡像是否已推送最新tag鏡像。(本例12min,實際視具體情況)6.查看業務代碼倉庫是否為相應的應用生成鏡像變更文件。(12min)7.ArgoCD UI上等待Dev集群應用自動更新,驗證是否符合預期。(12min)8.ArgoCD UI上手動觸發Production集群應用部署,并驗證是否符合預期。(12min)準備工作:1.已創建ACK One Fleet,開啟GitOps功能,并關聯兩個已創建的ACK集群。2.(可選)開啟公網訪問ArgoCD UI。3.已創建ACR企業版實例。并添加ACR EE憑證到ACK One GitOps。實踐步驟THANKS