首页 > 其他分享 >CICD Day9、Argo CD增强持续交付

CICD Day9、Argo CD增强持续交付

时间:2025-01-16 18:45:23浏览次数:1  
标签:Day9 CICD argocd TCP CD Argo ClusterIP server

1、Argo CD简介

  在Jenkins CI/CD流程中的持续交付阶段,既部署到k8s集群阶段,使用kubectl工具来进行应用程序的部署和更新操作,但这种方式无法实时跟踪应用程序的状态。这将造成用户在CI/CD流程完成后需要额外操作kubernetes集群,以进一步查看应用程序的状态。为了解决这些问题,可以引入Argo CD来增强持续交付阶段,如下图所示

image

    在上图中,Jenkins仍然负责持续集成阶段,包括拉取代码、代码编译和构建镜像等任务。
    一旦完成这些任务,Jenkins就会将最新的状态更新到存储在Git代码仓库的kubernetes资源文件中。
    Argo CD负责执行kubernetes资源文件的更新操作,并持续监控Git代码仓库中的kubernetes资源文件的变化,如果监测到变更,Argo CD会自动将这些变更同步到kubernetes集群中,以完成对应用程序的更新操作。同时,用户可以通过可视化界面实时观察应用程序的更新状态
    这种分工和协作机制充分发挥了Jenkins和Argo CD的优势,实现饿了更可靠、自动化和可视化的持续交付流程

2、Argo CD 部署

  • 将Argo CD部署到kubernetes集群中
kubectl create ns argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
  • 查看Argo CD相关资源,如下
[root@h-k8s-master-181 k8s]# kubectl get pod,svc -n argocd
NAME                                                    READY   STATUS    RESTARTS   AGE
pod/argocd-application-controller-0                     1/1     Running   0          50s
pod/argocd-applicationset-controller-5c787df94f-d8ql9   1/1     Running   0          50s
pod/argocd-dex-server-6bb9b5fc75-j6v5d                  1/1     Running   0          50s
pod/argocd-notifications-controller-7ccbd7fb6-tcrcx     1/1     Running   0          50s
pod/argocd-redis-6d479f656c-xwgtj                       1/1     Running   0          50s
pod/argocd-repo-server-799b498d8b-swwjz                 1/1     Running   0          50s
pod/argocd-server-f6d4d8775-jwbdv                       1/1     Running   0          50s

NAME                                              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/argocd-applicationset-controller          ClusterIP   10.97.89.138     <none>        7000/TCP,8080/TCP            51s
service/argocd-dex-server                         ClusterIP   10.109.209.155   <none>        5556/TCP,5557/TCP,5558/TCP   51s
service/argocd-metrics                            ClusterIP   10.103.133.92    <none>        8082/TCP                     51s
service/argocd-notifications-controller-metrics   ClusterIP   10.100.66.113    <none>        9001/TCP                     51s
service/argocd-redis                              ClusterIP   10.109.242.126   <none>        6379/TCP                     51s
service/argocd-repo-server                        ClusterIP   10.104.220.17    <none>        8081/TCP,8084/TCP            51s
service/argocd-server                             ClusterIP   10.101.120.102   <none>        80/TCP,443/TCP               51s
service/argocd-server-metrics                     ClusterIP   10.102.136.4     <none>        8083/TCP                     50s
  使用kubectl edit svc argocd-server -n argocd命令编辑Service对象,将type字段的值从ClusterIP变更为NodePort,并使用kubectl get svc -n argocd命令获取NodePort端口以进行访问。将看到Argocd的登录页面<http://192.168.31.181:30397/>
[root@h-k8s-master-181 k8s]# kubectl get svc -A|grep Node
argocd                 argocd-server                             NodePort    10.101.120.102   <none>        80:30397/TCP,443:31364/TCP   56m
kubernetes-dashboard   kubernetes-dashboard                      NodePort    10.108.148.129   <none>        443:30001/TCP                25h
  • 默认用户名为admin,密码由系统随机生成,可以通过下面的命令获取
[root@h-k8s-master-181 k8s]# kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d ; echo
GQznYzmiT0Kglz0m
  • 登录成功后,进入Argo CD首页。
    image

3、Argo CD实践

3.1 添加代码仓库

3.2 创建应用

3.3 Git仓库中kubernetes资源文件变更

3.4 应用回滚

标签:Day9,CICD,argocd,TCP,CD,Argo,ClusterIP,server
From: https://www.cnblogs.com/suyj/p/18675563

相关文章

  • 2025年环境工程与低碳发展国际会议(EELCD 2025)
    The2ndInternationalConferenceonEnvironmentalEngineeringandLowCarbonDevelopment一、大会信息会议简称:EELCD2024投稿邮箱:eelcd@sub-paper.com大会地点:中国·银川收录检索:提交EiCompendex,CPCI,CNKI,GoogleScholar等二、会议简介备受瞩目的第二届环境......
  • 线段树【区间GCD】
    https://codeforces.com/contest/2050/problem/F#include<bits/stdc++.h>#definelcp<<1#definercp<<1|1#defineINF2e9usingnamespacestd;#definelowbit(x)x&(-x)#defineendl'\n'usingll=longlong;usingpii=pair......
  • 【Varnish】:解决 Varnish 7.6 CDN 静态资源缓存失效问题
    项目场景:在一个使用Varnish作为反向代理的Web应用中,我们依赖CDN(内容分发网络)来缓存静态资源(如图片、CSS、JavaScript文件等),以提高全球用户的访问速度并减轻源站服务器的负载。然而,在实际运行中,我们遇到了一个问题:CDN缓存的静态资源全部一直回源,导致源站服务器负载过高,响应时间......
  • 第1章 PCL点云库核心基础:PCD点云数据及point_types和point_cloud点云类型源码详细解读
    一、PCL点云PCD文件原始数据在PCL点云库中,点云的原始数据可以包含多种字段,这些字段根据不同的应用场景和数据采集设备有所不同。最常见的点云数据存储在PCD(PointCloudData)文件格式中,其主要字段包括:#.PCDv0.7-PointCloudDatafileformat//注释VERSION0.7......
  • DevOps 企业级 CI/CD 实战 —— 整合 GitLab+Jenkins+Harbor+Docker 实现代码全自动化
    前言随着AI人工智能、云计算、Docker、K8S等容器技术等的发展,DevOps得到了广泛的应用和推广,CI/CD(持续集成/持续部署)等概念不断深化和完善。CI/CD是现代软件开发中的重要实践,CI(ContinuousIntegration,持续集成)强调开发人员频繁地将代码集成到共享仓库,并且每次集成都......
  • 手撕Transformer -- Day9 -- TransformerTrain
    手撕Transformer–Day9–TransformerTrainTransformer网络结构图目录手撕Transformer--Day9--TransformerTrainTransformer网络结构图TransformerTrain代码Part1库函数Part2实现一个DeEnDataset数据集,作为一个类Part3batch处理,Tensor+PaddingPart4测试......
  • 【Verilog实例】1_LCD字符串显示
    功能描述:  通过写入指令或数据,控制内部的驱动芯片,从而实现在LCD显示屏上显示字符串:I_❤L......
  • 如何搭建 Vue.js 开源项目的 CI/CD 流水线
    网罗开发(小红书、快手、视频号同名)  大家好,我是展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、HarmonyOS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源......
  • 手把手带你搭建CI/CD工作流
    一、什么是CI/CD?持续集成(ContinousIntergration,CI)是在源代码变更后自动检测、拉取、构建和进行自动化测试的过程,属于开发人员的自动化流程。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。其基本思路是,自动化监测代码仓库的变化并拉取最新代码、编译构......
  • 基本的后端 CI/CD 管道步骤
    应包括以下步骤:构建步骤编译/转译应用程序运行单元测试运行集成测试运行静态代码分析创建docker镜像(使用Git修订号作为镜像名称)它应该在主分支和功能分支上执行(构建应该在每个分支上运行,即使没有明确的拉取请求)打包步骤将Docker镜像上传到AWSECR在GitHub操作......