Argo CD

基于 Kubernetes 的声明式持续交付工具
授权协议 Apache-2.0
开发语言 Google Go TypeScript
所属分类 开发工具、 持续集成系统(CI/CD)
软件类型 开源软件
地区 不详
投 递 者 端木安国
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Argo CD 是 Kubernetes 的声明性 GitOps 持续交付工具。

优点:

 

  • 应用程序定义、配置和环境应该是声明性的并且是版本控制的。
  • 应用程序部署和生命周期管理应该是自动化的、可审计的并且易于理解。

Argo CD 遵循 GitOps 模式,使用 Git 存储库作为定义所需应用程序状态的真实来源。Kubernetes 清单可以通过多种方式指定:

  • 自定义应用程序
  • helm 图
  • ksonnet 应用程序
  • jsonnet 文件
  • YAML/json 清单的普通目录
  • 任何配置为配置管理插件的自定义配置管理工具

Argo CD 在指定的目标环境中自动部署所需的应用程序状态。应用程序部署可以在 Git 提交时跟踪对分支、标签或固定到特定版本清单的更新。有关可用的不同跟踪策略的更多详细信息,可参阅跟踪策略

架构:

Argo CD被实现为kubernetes控制器,该控制器连续监视正在运行的应用程序, 并将当前的活动状态与所需的目标状态(在Git存储库中指定)进行比较。 其活动状态偏离目标状态的已部署应用程序被标记为OutOfSync。 Argo CD报告并可视化差异,同时提供了自动或手动将实时状态同步回所需目标状态的功能。 在Git存储库中对所需目标状态所做的任何修改都可以自动应用并反映在指定的目标环境中。

特性:

 

  • 将应用程序自动部署到指定的目标环境
  • 支持多种配置管理/模板工具(Kustomize、Helm、Ksonnet、Jsonnet、plain-YAML)
  • 能够管理和部署到多个集群
  • SSO 集成(OIDC、OAuth2、LDAP、SAML 2.0、GitHub、GitLab、Microsoft、LinkedIn)
  • 用于授权的多租户和 RBAC 策略
  • 回滚/随处回滚到 Git 存储库中提交的任何应用程序配置
  • 应用资源健康状况分析
  • 自动配置漂移检测和可视化
  • 自动或手动将应用程序同步到所需状态
  • 提供应用程序活动实时视图的 Web UI
  • 用于自动化和 CI 集成的 CLI
  • Webhook 集成(GitHub、BitBucket、GitLab)
  • 自动化的访问令牌
  • PreSync、Sync、PostSync 挂钩以支持复杂的应用程序部署(例如蓝色/绿色和金丝雀升级)
  • 应用程序事件和 API 调用的审计跟踪
  • Prometheus 指标
  • 用于覆盖 Git 中的 ksonnet/helm 参数的参数覆盖
  • 开篇 本期视频,我们一起来手把手的搭建实验环境。为了节省资源,我们部署 All-In-One K8S环境,也就是所有 kubernetes 资源,运行在一台服务器上。 视频直达 第一部分视频 第二部分视频 安装工具 开始动手之前,我们来介绍两款工具,kubekey 和 k9s。 “ kubeykey 是 KubeSphere 团队基于 GoLang 语言开发的kubernetes集群部署工具,使用

  • “ 本系列课程,我们来研究 ArgoCD,我会从基础概念讲起,带领大家搭建实验环境,再到一个个特性的实践讲解,让大家对 ArgoCD 有个相对全面的认识。课程实验中,我们的模拟会尽量贴近生产环境,让大家学到知识的同时,更获得生产环境经验的积累。 ” 视频直达 ArgoCD 介绍 基于 kubernetes 的声明式 Gitops 持续部署工具。 持续部署工具有很多,如 Jenkins 等等,我们为

 相关资料
  • 交付管道的建立和自动化是持续交付的基础 持续集成 更关注代码质量。持续集成是为了确保随着需求变化而变化的代码,在实现功能的同时,质量不受影响。因此,在每一次构建后会运行单元测试,保证代码级的质量。单元测试会针对每一个特定的输入去判断和观察输出的结果,而单元测试的粒度则用来平衡持续集成的质量和速度。 持续集成的核心价值在于1: 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重

  • 它们还提供了一个警告:如果您能够持续部署到测试系统,有时也会使用术语“持续部署”。 这一切让我很困惑。任何更详细的解释(或附带一个例子)都是赞赏的!

  • 我为老东家的 CTO 部门工作的七年里,除了吃饭睡觉码代码,干的最多的事情就是布道。给工程师讲技术,给管理层讲业态,给客户讲故事。但让我很沮丧的是,在离职那天给我留言最多的一条,居然是「很遗憾,再也听不到你讲美食了」。好吧,虽然我们怀揣着改变世界的梦想踏上征程,却总是在路口的料理摊停下了脚步。这个插曲,就算是我这系列文章的引子。 每一个吃货的心里,都住着一个厨子。 每一个码农的心里,都憋着一个梦想

  • 介绍 持续交付是频繁对软件应用程序持续更新的概念. 这个想法使在大量频繁的更新面前, 你不必等待在一个指定的特殊时间点, 并且使你的组织在响应过程中变得更好. 一些 Ansible 用户每小时都在部署更新给他们的最终用户甚至更加频繁 – 每时每刻都有代码修改的批准. 要实现这一点, 你需要工具能在零停机的时间内快速的应用这些更新. 本文档详细介绍了如何现实这一目标, 使用 Ansible play

  • 对于缓存声明,抽象提供了一组 Java 注解: @Cacheable 触发缓存机制 @CacheEvict 触发缓存回收 @CachePut 更新缓存,而不会影响方法的执行 @Caching 组合多个缓存操作到一个方法 @CacheConfig 类级别共享系诶常见的缓存相关配置 下面,让我们仔细看看每个注释。 32.3.1 @Cacheable 注解 顾名思义,@Cacheable 用于标识可缓存

  • 问题内容: 简化的管道如下所示: 对于步骤5,我设置了Jenkins管道输入命令。我们不会在每次提交时都将产品部署到产品上,因此,如果我们中止所有这些工作,它将有大量的灰色版本。是否可以使用跳过选项,以使构建仍可以显示为 绿色 蓝色? 问题答案: 您不能这样做吗,无论您从输入中选择什么,它都会变成蓝色/绿色,然后您也可以根据它来运行部署?

  • 在 redux-saga 的世界里,Sagas 都用 Generator 函数实现。我们从 Generator 里 yield 纯 JavaScript 对象以表达 Saga 逻辑。 我们称呼那些对象为 Effect。Effect 是一个简单的对象,这个对象包含了一些给 middleware 解释执行的信息。 你可以把 Effect 看作是发送给 middleware 的指令以执行某些操作(调用某

  • 问题内容: 背景: 我们每天晚上都有一份詹金斯工作()构建可交付成果。我们还有另一项工作(),第二天通过专有协议将可交付成果推送到生产机器。这是因为某些生产机器仅在一天中的某些时段可用(这也使我们有机会修复任何最后的构建中断)。 需要访问作业构建的可交付成果(因此需要访问同一工作空间)。我们有多个节点和并发的内部版本(因此是不可预测的工作空间),并且由于资源有限,所以最好不要将作业绑定到固定的节点