当前位置: 首页 > news >正文

25.云原生之ArgoCD-app of apps模式

文章目录

    • app of apps 模式介绍
    • app如何管理app
      • helm方式管理
      • kustomize方式管理

app of apps 模式介绍

通过一个app来管理其他app,当有多个项目要发布创建多个app比较麻烦,此时可以创建一个管理app,管理app创建后会创建其他app。比较适合项目环境迁移的场景。

App of Apps模式优点:

  1. 统一管理:通过一个主要的应用程序,你可以统一管理多个应用程序的生命周期。这样可以简化管理和操作,减少重复劳动。
  2. 集中控制:"App of Apps"应用程序充当了一个控制中心,你可以通过它来管理整个应用程序集群的状态和配置。这样可以提高集中控制的能力,并确保所有应用程序的一致性。
  3. 版本控制:通过将应用程序定义文件存储在Git仓库中,你可以轻松地跟踪和管理应用程序的版本。这样可以实现版本控制和回滚,确保应用程序的可追溯性和可控性。
  4. 多环境支持:"App of Apps"模式可以支持多个环境(如开发、测试和生产环境)的部署。通过在主要应用程序中定义不同环境的应用程序配置,可以轻松地在不同环境中部署和管理应用程序。

app如何管理app

  1. 查看配置app对应的k8s资源内容

    kubectl get applications --all-namespaces
    
  2. 查看应用程序资源的内容:

    kubectl get application <application-name> -n <namespace> -o yaml
    

核心配置如下,下述配置其实就是在ArgoCD创建应用对应的配置

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:name: app1namespace: argocd
spec:destination:namespace: directory-guestbook-1server: https://kubernetes.default.svcproject: defaultsource:path: guestbookrepoURL: https://gitee.com/gmkk/argocd-example-apps.gittargetRevision: maindirectory:recurse: truesyncPolicy:syncOptions:- CreateNamespace=true

管理app通过配置文件描述,有helm和kustomize方式,如下:

helm方式管理

官网案例参考:https://github.com/argoproj/argocd-example-apps
image.png
注意:在Argocd中创建应用需要选择Helm
image.png

kustomize方式管理

案例参考:https://gitee.com/gmkk/argocd-example-apps
image.png
rootapp:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:name: root-applicationnamespace: argocd
spec:project: defaultsource:repoURL: https://gitee.com/gmkk/argocd-example-apps.gittargetRevision: HEAD# 其他Application路径path: ./app-of-apps/apps# directorydirectory:recurse: falsedestination:server: https://kubernetes.default.svcnamespace: default

相关文章:

  • 基于python的新闻爬虫
  • 【算法与数据结构】718、1143、LeetCode最长重复子数组 最长公共子序列
  • 比较以下Unity AStar Pathfinding, NavMesh, Recast Navigation 寻路算法的优点与缺点
  • Java函数式编程详解
  • 升级 FATFS 笔记
  • MySQL中去除重复(十一)
  • vue使用pdf.js实现在线查看pdf文件
  • 酒店|酒店管理小程序|基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)
  • 全面认识DOS系统
  • 调试以及发布npm组件
  • 滇西科技师范学院食堂大宗物资采购项目(冰冻制品类)招标公告
  • 三维模型设计新纪元:3D开发工具HOOPS在机械加工行业的应用与优势
  • HTML -- 常用标签
  • JProfiler for Mac:提升性能和诊断问题的终极工具
  • 基于Java SSM框架实现汉服文化平台系统项目【项目源码+论文说明】计算机毕业设计
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • CentOS 7 修改主机名
  • CSS实用技巧
  • Java,console输出实时的转向GUI textbox
  • Laravel 实践之路: 数据库迁移与数据填充
  • mysql_config not found
  • Mysql优化
  • mysql中InnoDB引擎中页的概念
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • Vue2.x学习三:事件处理生命周期钩子
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 精彩代码 vue.js
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 区块链技术特点之去中心化特性
  • 通过npm或yarn自动生成vue组件
  • 线性表及其算法(java实现)
  • 一道闭包题引发的思考
  • 移动端 h5开发相关内容总结(三)
  • ​iOS安全加固方法及实现
  • #Java第九次作业--输入输出流和文件操作
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $.ajax()
  • $.proxy和$.extend
  • (7)STL算法之交换赋值
  • (备忘)Java Map 遍历
  • (初研) Sentence-embedding fine-tune notebook
  • (定时器/计数器)中断系统(详解与使用)
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (六)vue-router+UI组件库
  • (三)Honghu Cloud云架构一定时调度平台
  • (四)图像的%2线性拉伸
  • (转)视频码率,帧率和分辨率的联系与区别
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .Net6使用WebSocket与前端进行通信
  • .net反混淆脱壳工具de4dot的使用
  • .NET简谈设计模式之(单件模式)