CICD Day9、Argo CD增强持续交付

news/2025/1/16 18:26:00/文章来源: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,一经查实,立即删除!

相关文章

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

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

wordpress 从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新本页。此响应不是合法的JSON响应。解决方法.210721

两种报错方式: 1.此响应不是合法的JSON响应。 2.从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新本页。 情况:媒体服务器上传小文件没问题,大一点的文件报这个错误。 原因:这是因为nginx限制了请求体大小 方案:需要在nginx的虚拟机配置文件中添加…

docker containner挂掉,无法exec进入bash,如何修改文件的终极解决方法.210730

场景: Nginx在bash里面配置的时候挂掉了,然后docker start不起来,exec bash进不去,造成无法再改里面的文件了 解决方法: 1,docker ps –a 可以查到所有docker,包括没有运行的,找到containner ID [root@hecs-29489 ~]# docker ps -a CONTAINER ID IMAGE COMMAND…

HP惠普笔记本重装系统无法引导无法进操作系统的终极解决方法.210804

F9进入BIOS-先进(Advanced)-安全引导配置- 启用传统支持和禁用安全引导.zstitle { width: 280px; text-align: center; font-size: 26px } .zsimgweixin { width: 280px } .zsimgali { width: 280px; padding: 0px 0px 50px 0px } .zsleft { float: left } .zsdiv { display:…

Feign与SpringCloud LoadBalancer实现负载均衡源码分析

SpringCloud LoadBalancer 众所周知,SpringCloud体系中负载均衡的组件有SpringCloud LoadBalancer和Ribbon,Ribbon也在逐渐的被替代掉,因为SpringCloud LoadBalancer性能更高,支持响应式 下面通过hard-coded体现一下SpringCloud的负载均衡 首先有一个【say-hello】服务,提…

JS — 判断语句与循环语句

js的判断语句与循环语句...(* ̄0 ̄)ノ判断语句JavaScript中的if-else语句与C++、Python、Java中类似。直接输出到控制台:test.html中的内容为: <script type="module">let score = 90;if (score >= 85) {console.log("A");} else if (score &g…

Living-Dream 系列笔记 第92期

最小路径点覆盖 在一张 DAG 上,求一个路径的集合,使得它们两两不相交,且覆盖所有的点。 结论:答案即为 \(总点数-最大匹配\)(于是 \(总点数-最大匹配=总点数-最小点覆盖=最大独立集=最大团=最小路径点覆盖\))。 证明: 不妨转换角度,从研究路径转为研究点。 因为路径两两…

毕设学习第四天之Java的注解和反射

注解(Annotation) Java 注解(Annotation)是一种特殊的语言构造,用于为代码元素(如类、方法、字段等)提供元数据,通常不直接影响程序的逻辑执行。它们可以被编译器、框架或工具解析,用于执行特定操作,如自动化配置、代码生成、验证等。Java 提供了内置的注解(如 @Overr…

Docker安装wikijs wiki系统.210818

1. 拉取mysql8的镜像并运行 docker pull mysqldocker run -d -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d --name mysql -e TZ=Asia/Shanghai -e MYSQL\_ROOT\_PASSWORD=1234 -p 3306:3306 mysql:latest2. 进入mysql,创建并修改权限 docker…

重载自动驾驶平板车HAV

随着无人驾驶在封闭场地和干线道路场景的加速落地,港口作为无人化运营的先行者,其场景的复杂度、特殊性对无人化运营的技术提出了各种挑战。为了应对港口无人化运营在实质化落地过程的挑战,经纬恒润借助自身在无人驾驶领域的深厚积累与实践,研发了全新的第三代重载自动驾驶…

【深度学习教程】Python 如何用 LSTM 做情感分析?小白也能上手!

Hello 大家好,今天我们来聊一个超热门的话题——**LSTM 网络在情感分析中的应用**!想象一下,通过深度学习,你的代码可以读懂人类情绪,知道“我爱你”和“我讨厌你”的区别,是不是很酷?今天这篇文章,我会手把手教你从零开始,用 Python 和 Keras 实现一个**基于 LSTM 的…

安川YASKAWA机器人主板维修方法合集

安川机械手板卡故障分析与YASKAWA机械臂主板维修步骤 1. 确认故障现象:首先,我们需要详细了解安川机器人主板故障现象,包括但不限于工作异常、运行错误、速度变慢等。 2. 拆卸主板:根据故障现象,找到相应的机械手电路板故障部位,并小心地将主板拆卸下来,确保不损坏其他部…