GitOps最强工具-1. Argo CD

官方地址:https://argoproj.github.io/

白话

​ 前面我们说过GitOps是云原生的一种持续交付模式。是将应用系统的声明性基础架构和应用程序存放在 Git 的版本控制库中。通过将Git置于交付管道的中心,开发人员可以发出拉取请求(Pull Request),以加速和简化Kubernetes的应用程序部署和操作任务。

同时那么实现GitOps工具有很多,比如谷歌自家的CICD系统Tekton,jenkins自家的JenkinsX,Argo CD更是后起之秀的代表。我们今天就走进Argo CD的世界,体会一把真正的云原生交付。

强烈建议使用其他Git存储库来保存您的kubernetes清单(与应用程序源代码分开)。请参阅最佳做法 以获取进一步的理由。

什么是Argo CD?

Argo CD是用于Kubernetes的声明性GitOps连续交付工具。

为什么选择Argo CD?

应用程序代码 和k8s资源清单分开,服务镜像,配置和环境所有一切都是通过k8s资源清单声明,并且根据git commit版本控制。应用程序部署和生命周期的管理都是自动化的,不需要人为参与,而且可审核的且易于理解的。

它是如何工作

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

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

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

架构

GitOps最强工具-1. Argo CD_第1张图片

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调用的审核跟踪
  • 普罗米修斯指标
  • 在Git中覆盖ksonnet / helm参数的参数覆盖

了解基础

在有效使用Argo CD之前,有必要了解该平台所基于的基础技术。还需要了解向您提供的功能以及如何使用它们。以下部分提供了一些有用的链接,可以帮助您理解。

学习基础知识

  • 浏览在线Docker和Kubernetes教程
    • 对容器,VM和Docker的初学者友好介绍
    • Kubernetes简介
    • Tutorials
    • Hands on labs
  • 根据您计划如何为应用程序模板化:
    • Kustomize
    • Helm
    • Ksonnet
  • 如果您要与Jenkins集成:
    • Jenkins用户指南

如果有兴趣了解ArgoCD,请继续关注ArgoCD 剩余连载文章,谢谢。

你可能感兴趣的:(DevOps)