CICD Day9、Argo CD增强持续交付

news/2025/5/16 3:01:18/文章来源:https://www.cnblogs.com/suyj/p/18675563

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          50sNAME                                              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 应用回滚

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/870243.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

尝试用GO给python写共享库

背景 就突发奇想,Go的效率相对来说高一些,那我们可不可以用Go来给python写关键处理库呢 查了下,还真可以实现,只是障碍比较多,而且使用起来也比较麻烦,但是也还是能实现的 解决 用 Go 编写 Python 库可以通过 Cgo 或 C共享库 的方式实现。 Go 代码可以被编译为 C 兼容的共…

FreeBSD X64 Graphics Driver Archive

https://www.nvidia.cn/drivers/unix/freebsd-x64-archive/

专为高性能计算和低功耗应用设计的MPF100T-1FCVG484E MPF100TL-FCSG325E MPF100TL-FCVG484I PolarFire FPGA产品系列

‌MPF100TL-FCG484E PolarFire FPGA是Microchip推出的一款高性能、低功耗的FPGA产品系列,特别适用于各种需要高性能计算和低功耗的应用场景‌。‌PolarFire FPGA是Microchip推出的一款高性能、低功耗的FPGA产品系列,特别适用于各种需要高性能计算和低功耗的应用场景‌。这些器…

番外-rust迭代器-iter()

iter() 是 Rust 中的一个方法,它可以用于 可迭代的集合,返回一个 不可变的迭代器。这个方法使得你可以遍历集合中的元素。通常,iter() 适用于以下几种类型: 1. 数组(Array) 数组是固定大小的集合,iter() 可以用来遍历数组中的元素。 示例: let arr = [1, 2, 3]; for it…

测试自动化笔记

33.Pytest接口自动化测试框架完整版开发(项目实战六) ---完成前4中断言,准确的是eq,ne两种情况34.Pytest接口自动化测试框架完整版开发(项目实战七) ---数据库断言,商品列表,商品详情 1.需要执行run.py,这里联调报错,找不到tokenlogin里面密码要改回实际的 2. 没有返…

THREE.js学习笔记7——Debug UI

这小节学习的是如何构建Debug UI 对于一些具有创造性的项目,可能会有很多个变量,Debug UI可以让开发人员,设计师,甚至是客户都能轻松调整这些变量 安装lil-gui,直接npm install lil-gui 大部分的参数调整,都可以通过gui.add()来添加,gui.add()含有两个参数,第一个是需要…