首页 > 其他分享 >Argo CD 基础

Argo CD 基础

时间:2023-12-12 16:57:52浏览次数:24  
标签:存储 Kubernetes 基础 应用程序 CD API Argo

Argoproj 概述

用于 Kubernetes 运行工作流程、管理集群和正确执行 GitOps 的开源工具。

Argoproj 组成

Argo Workflows

基于Kubernetes平台的原生工作流引擎,支持 DAG和step-based工作流。

Argo Events

Kubernetes上的基于事件的依赖管理器,用于触发Kubernetes中的Argo工作流和其他操作。

Argo CD

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

Argo Rollouts

Argo Rollouts 是一个 Kubernetes 控制器和一组 CRD,为 Kubernetes 提供高级部署功能,例如蓝绿、金丝雀、金丝雀分析、实验和渐进式交付功能。

ArgoCD 概述

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

ArgoCD 注意功能

1. 自动将应用程序部署到指定的目标环境
2. 支持多种配置管理/模板工具(Kustomize、Helm、Jsonnet、plain-YAML)
3. 能够管理和部署到多个集群
4. SSO 集成(OIDC、OAuth2、LDAP、SAML 2.0、GitHub、GitLab、Microsoft、LinkedIn)
5. 多租户和 RBAC 授权策略
6. 部署/回滚到 Git Repo存储库中提交的任何应用程序配置
7. 应用资源健康状况分析
8. Automated configuration drift detection and visualization
9. 自动或手动将应用程序同步到所需状态
10. Web UI 提供应用程序活动的实时视图
11. 用于自动化和 CI 集成的 CLI
12. Webhook 集成(GitHub、BitBucket、GitLab)
13. 用于自动化的访问令牌
14. PreSync、Sync、PostSync Hooks,支持复杂的应用程序部署(例如蓝/绿和金丝雀升级)
15. 应用程序事件和 API 调用的审核跟踪
16. Prometheus指标
17. 参数覆盖用于覆盖 Git 中的 helm 参数

ArgoCD 架构

ArgoCD 组件架构

ArgoCD 组件依赖关系

ArgoCD 组件层

UI:这是表示层。用户与Argo CD的交互主要通过该层的组件进行。
Application:支持 UI 层组件所需的功能。
Core:Argo CD gitops 的主要功能是由核心层的组件和 Kubernetes 控制器实现的。
Infra:代表 Argo CD 作为其基础设施一部分所依赖的工具。

Webapp

Argo CD 附带强大的 Web 界面,允许管理部署在给定 Kubernetes 集群中的应用程序。

CLI

Argo CD 提供了一个 CLI,用户可以使用它与 Argo CD API 进行交互。 CLI 还可用于自动化和脚本编写。

API Server

API Server是一个 gRPC/REST 服务器,它公开 Web UI、CLI 和 CI/CD 使用的 API 系统。它有以下职责:
1. 应用程序管理和状态报告
2. 调用应用程序操作(例如同步、回滚、用户定义的操作)
3. 管理Repository和Cluster相关的凭据(存储为 K8s secrets)
4. 将身份认证与授权功能委派给外部IdP(identity providers)服务
5. 强制实施RBAC
6. 监听及转发Git Webhook相关的事件等

Repository Server

存储库服务器是一项内部服务,用于维护保存应用程序清单的 Git 存储库的本地缓存。当提供以下输入时,它负责生成并返回 Kubernetes 清单:
1. repository URL
2. revision (commit, tag, branch)
3. application path
4. template specific settings: parameters, helm values.yaml

Application Controller

application controller是一个 Kubernetes 控制器,它持续监视正在运行的应用程序,并将当前的实时状态与所需的目标状态(如存储库中指定的)进行比较。它检测 OutOfSync 应用程序状态并可选择采取纠正措施。它负责为生命周期事件调用任何用户定义的hooks(PreSync、Sync、PostSync)

Redis

Redis负责提供缓存服务。

Kube API

Argo CD 控制器将连接到 Kubernetes API 以运行协调循环。

Git

作为 gitops 工具,Argo CD 要求在 Git 存储库中提供所需的 Kubernetes 资源状态。
这里使用“git”来代表实际的 git 存储库、Helm 存储库或 OCI 工件存储库。 

Dex-Server

主要用于提供in-memory Database。

ApplicationSet Controller

ApplicationSet 控制器负责协调ApplicationSet 资源。

参考文档

https://argo-cd.readthedocs.io/en/stable/

标签:存储,Kubernetes,基础,应用程序,CD,API,Argo
From: https://www.cnblogs.com/wangguishe/p/17888224.html

相关文章

  • cdr 小问题解决方案
    1,插件卸载不干净1.1:插件自带的卸载1.2:点击cdr文件夹,选择路径CorelDRAWGraphicsSuiteX8\Draw\plugins64,删除其中所有的"*.cpg"文件(如果你安装了其他插件,这里也会有其他插件的cpg文件,请仔细辨认。或者直接全部删了,到时再安装一下你需要保留的插件)。 2,cdr矩形,对象属性无法更......
  • 零基础30天学会Java-韩顺平
    第一章概述了解了该视频课程的大纲和Java的基本知识,Java1995年推出,目前稳定维护的有Java8和Java11版本。JVM(Java虚拟机):JVM包含于JDK中,Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行"JRE(Java运行环境):JRE=JVM+Java的核心类库。JDK(Java开发工具包):JDK=JRE+Jav......
  • Tekton pipelineruns 基础
    pipelineruns概述PipelineRun允许你在集群上实例化和执行Pipeline。一个Pipeline指定一个或多个Tasks,按照期望的执行顺序执行。PipelineRun按照指定的顺序执行Pipeline中的Tasks,直到所有Tasks都成功执行或失败。PipelineRun会自动为Pipeline中的每个Task创建相应的taskrun。pipeli......
  • Tekton 基础
    Tekton概述Tekton是用于构建CI/CD系统的云原生解决方案。它由TektonPipelines(提供构建块)和支持组件(例如TektonCLI和TektonCatalog)组成,使Tekton成为一个完整的生态系统。Tekton是Linux基金会项目CD基金会的一部分。Tekton作为Kubernetes集群上的扩展安装和运行,......
  • Tekton Pipelines 基础
    Pipelines概述Pipeline是Tasks的集合,作为持续集成流的一部分,您可以定义并按照特定的执行顺序排列这些Tasks。Pipeline中的每个Tasks在Kubernetes集群上作为Pod执行。您可以配置各种执行条件来满足您的业务需求。Pipeline使用When表达式when表达式input:被评估的内容,支持使用静态......
  • Tekton TaskRun 基础
    TaskRun概述TaskRun允许您在集群上实例化和执行Task。任务指定执行容器映像的一个或多个Steps,每个容器映像执行特定的构建工作。TaskRun按照指定的顺序执行任务中的Steps,直到所有Steps执行成功或失败。TaskRun配置清单apiVersion:tekton.dev/v1#指定API版本。kind:TaskR......
  • Tekton Tasks 基础
    Tasks概述Task是一系列Step的组合,每个Step主要负责运行特定的构建或交付工具从而完成相关的一次特定事项;Task以Kubernetes集群上Pod运行。Task是名称空间级别的资源。Tasks组成Parameters:是使得Task及Pipeline资源定义出的“模板”更加具有通用性的关键要素之一Steps:具体执行的......
  • Tekton Trigger Interceptors 基础
    Interceptors概述Interceptor是针对特定平台的的事件处理器,在TriggerBinding之前运行。它允许您执行有效负载过滤、验证(使用秘密)、转换、定义和测试触发条件,以及实现其他有用的处理。一旦事件数据通过Interceptor,它就会在将有效负载数据传递到TriggerBinding之前转到Trigger。......
  • 【python基础之装饰器】---装饰器
    title:【python基础之装饰器】---装饰器date:2023-12-1118:54:06updated:2023-12-1214:30:00description:cover:https://home.cnblogs.com/u/dream-ze/【一】什么是装饰器装饰代指为被装饰对象添加新的功能,器代指器具/工具,装饰器与被装饰的对象均可......
  • 【python基础之函数对象和闭包】 --- 函数对象与闭包
    title:【python基础之函数对象和闭包】---函数对象与闭包date:2023-12-1119:20:00updated:2023-12-1119:20:00description:cover:https://home.cnblogs.com/u/dream-ze/【一】函数对象函数对象指的是函数可以被当做数据来处理具体可以分为四......