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

Argo CD 基础

时间:2023-12-19 13:02:34浏览次数:37  
标签:存储 Git Kubernetes 基础 应用程序 CD 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 架构

Argo CD 基础_应用程序

ArgoCD 组件架构

ArgoCD 组件依赖关系

Argo CD 基础_Server_02

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/



标签:存储,Git,Kubernetes,基础,应用程序,CD,Argo
From: https://blog.51cto.com/wangguishe/8886964

相关文章

  • Argo Rollouts CRD
    ArgoRolloutsCRDapiVersion:argoproj.io/v1alpha1kind:Rolloutmetadata:name:example-rollout-canaryspec:#运行的Pod实例数量,默认为1.#Defaultsto1.replicas:5analysis:#保留成功的数量#Defaultsto5.successfulRunHistoryLimit:1......
  • Argo Rollouts Canary 基础
    ArgoRolloutsCanary概述金丝雀部署是一种部署策略,将一小部分生产流量发布到新版本的应用程序。ArgoRolloutsCanary完整配置apiVersion:argoproj.io/v1alpha1kind:Rolloutmetadata:name:example-rollout-canaryspec:#运行的Pod实例数量,默认为1.#Defaultsto......
  • Argo Rollouts 基础
    ArgoRollouts概述ArgoRollouts是一个Kubernetes控制器和一组CRD,为Kubernetes提供高级部署功能,例如蓝绿、金丝雀、金丝雀分析、experimentation和渐进式交付功能。ArgoRollouts(可选)与IngressController和服务网格集成,利用其流量治理功能在更新期间逐渐将流量转移到新版本......
  • (三十五)C#编程基础复习——C#预处理器指令
    预处理指定的作用主要是向编译器发出指令,以便在程序编译开始之前对信息进行一些预处理操作。在C#中,预处理器指令均以#开头,并且预处理器指令之前只能出现空格不能出现任何代码。另外,预处理器指令不是语句,因此它们不需要分好;结尾。在C#中,预处理指令用于帮助条件编译。不同于C和C++......
  • 抗噪/防干扰 LCD液晶段码显示驱动芯片VK2C21A/AA SSOP28 适用于适用于单相电表,温控器L
    产品品牌:VINKA/永嘉微/永嘉微电产品型号:VK2C21A/B/C/D/VK2C21AA/VK2C21BA封装形式:SOP28/24/20、NSOP16、SSOP28、SSOP24(新增封装)产品年份:新年份原厂直销,样品免费,技术支持,价格优势。概述:VK2C21是一个点阵式存储映射的LCD驱动器,可支持最大80点(20SEGx4COM)或者最大128点(16SEGx8C......
  • CF1900D Small GCD 题解
    原题链接:CF1900D,题意不多赘述。首先可以将\(a\)数组排序,并且枚举中间的那个数\(a_i\)。那么答案就是\(\sum_{j=1}^{i-1}\gcd(a_j,a_i)\times(n-i)\)。重点在于求前面的\(\gcd\)。可以用欧拉反演,但是也可以不用,因为我不会。假设我们当前已经枚举到了\(a_i\),设\(f_k\)表......
  • 【GD32307E-START】06 ST7735 SPI-LCD显示模块移植
    软硬件平台GD32F307E-STARTBoard开发板GCCMakefile1.8寸TFTLCD分辨率128*160驱动ICST7735S接口定义序号引脚标号说明1GND接地2VCC5V/3.3V电源输入3SCKSPI总线时钟信号4SDASPI总线写数据信号5RESET液晶屏复位信号,低电平复位6DC......
  • C++基础 -9- 函数的默认参数
     ———————函数的默认参数——————— ......
  • 【沁恒 CH58x 应用】BLE相关知识基础
    大纲:1.什么是ble,ble与传统蓝牙的区别,ble与蓝牙4.0的区别2.ble的基本概念:协议层(协议框架)、服务(Service)、特征(Characteristic)。什么是配对(pair)、通知(notify)。 介绍低功耗蓝牙1.什么是低功耗蓝牙?图1BLE介绍低功耗蓝牙,简称BLE,是蓝牙的一种省电变体。BLE的主要应......
  • java基础语法之二维数组1
    一:概述在前面的博文中,已经说明了一维数组相关的基础知识和案例,接下来就是对二维数组的介绍。首先介绍二维数组的相关基础介绍。二:具体说明二维数组:元素为一维数组的数组。<1>二维数组的定义格式数据类型[][]变量名; int[][]arr; 数据类型变量名[][]; intarr[][];数据类型[]......