ArgoCD(一): 架构及其模型

news/2025/2/7 7:00:49/

1.1 ArgoCD 概览

  • Argo项目2017年由Applatix公司成立,2018年被Intuit收购,之后,BlackRock为Argo项目贡献了Argo Events这一项目;
  • Argo所有组件都通过kubernetes CRD实现
  • Argo生态目前主要由四个子项目组成
    • Argo Workflows :第一个Argo项目
  • Argo Events :k8s上基于事件的依赖管理器,用于触发k8s中Argo工作流和其他操作
  • Argo CD: 支持GitOps范式的声明式kubernetes资源管理
  • Argo Rollouts: ArgoCD的高级交付策略工具,支持声明式渐进式交付策略,例如canary,blue-green等

1.1.1 ArgoCD简介

  • 将应用程序部署到kubernetes之上的GitOps工具
  • 核心组件:Application Controller及相关的一组CRD
  • 基础工作模型
    • 以特定Repo(配置仓库)为应用程序部署和管理的唯一可信源,该Repo负责定义Application大人期望状态;
    • Application Controlller负责将repo定义的Application运行于一个特定目标i的Kubernetes Cluster上;
    • Application Controller持续监视,对比Application的期望状态和实际状态,并确保实际状态和期望状态一致

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3TorFkO8-1686018548554)(images\image-20230116152940426.png)]

1.1.2 ArgoCD主要功能

  • 可协同使用各种配置管理工具(如ksonnet/jsonnet、Helm和kustomize)确保应用程序的真实状态与GitOps中定义的期望状态一致
  • 将应用程序部署到指定的目标环境
  • 持续监控已部署的应用程序
  • 基于web和CLI的操作接口,以及应用程序可视化
  • 部署或回滚到gitrepo仓库中提交的应用程序任何状态
  • preSync、Sync、PostSync Hooks以支持复杂的应用程序部署策略,例如:blue/green,canary等
  • SSO集成
  • WebHooks集成那个:与github,gitlab等
  • 可以独立使用,也可以作为pipeline的一部分使用,例如与Argo Workflow,Jenkins 以及GitLab CI等配和使用

1.1.3 核心工作模型

  • ArgoCD的两个核心概念为Applicatio和Project,他们可分别基于Application CRD和AppProject CRD创建

  • Application从本质上讲,包含如下两部分:

    • 一组在kubernetes上部署和运行某个应用的资源配置文件,这组资源相关的source和destination:

      1. source: 定义从何处获取配置文件,包括repoUrL和配置文件所在的目录
      2. destination:定义这组资源的配置文件中定义的对象应该创建运行于何处。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RWNw4l48-1686018548555)(images\image-20230116160021773.png)]

    • 支持的配置管理工具

      Helm、Kustomize、Jsonnet

  • Application还存在两个非常重要的属性:Sync Status和Health Status:

    • Sync Status: Application的实际状态与Git Repo中定义的期望状态是否一致;Synced为一致,OutOfSync为不一致

    • Health Status:Application的健康状态,是各资源的健康状态的聚合信息

      Healthy :健康

      Processing:处于尝试转为健康状态的进程中

      Degraded:降级

      Missing:缺失,即在gitrepo中存在资源定义,但并未完成部署

  • Project

    • 能够将Application进行分组的逻辑组件
    • 主要用于Application彼此隔离,并且支持在project内进行细粒度的权限管控
    • 支持为内部Application上的Source和Destionation分别指定各自的黑名单

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LFoHLGK4-1686018548555)(images\image-20230116161330979.png)]

1.1.4 ArgoCD架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hBvhUjPv-1686018548555)(images\image-20230116161500538.png)]

1.1.5 ArgoCD组件

  • ArgoCD API Server: 为Web UI、CLI,以及相关的CI/CD系统提供服务,相关功能包括:

    • 管理应用程序并报告其状态
    • 调用并发起应用程序的特定操作:例如sync、rollback以及用户其他行为
    • 管理repo和cluster相关的凭据
    • 将身份认证与授权功能委派给外部IdP服务
    • 强制实施RBAC
    • 监听及转发Git Webhook相关的事件
  • Repository Server

    • 内部服务,用于为相关的Git仓库维护一个本地缓存
    • 负责生成kubernetes的资源配置
  • Application Controller

    • 持续监控正在运行的应用程序,并将其当前的活动状态与定义在GitRepo中的期望状态进行比较
    • 确保活动状态不断逼近或等同于期望状态
  • ApplicationSet Controller

    • 以模板化形式自动生成由ArgoCD管理的应用程序
    • 支持从多个不同的角度构建模板,例如不同的Git Repo,或者不同的kubernetes Clusterdeng
  • Notification Controller

    • 持续监控ArgoCD管理的Application,并支持通过多种不同的方式将其状态变化通知给用户
    • 支持Trigger和Template】
  • Redis和Dex-Server

    • Redis负责提供缓存服务
    • Dex-Server则用于提供in-memory Database
  • Argo Rollouts

    • 可选组件,需要单独部署,由一个控制器和一组CRD组成
    • 与Ingress Controller和ServiceMesh集成,为Application提供高级部署功能,如blue-gree、canary、canary analysis和渐进式交付

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ep4JsdMy-1686018548556)(images\image-20230116164224530.png)]


http://www.ppmy.cn/news/239556.html

相关文章

MATLAB麻雀优化CNN超参数分类

在CNN分类器模型的构建中,涉及到特别多的超参数,比如:学习率、训练次数、batchsize、各个卷积层的卷积核大小与卷积核数量(feature map数),全连接层的节点数等。直接选择的话,很难选到一组满意的…

神经网络模型计算量 参数量 解释

1. 概念 计算量(FLOPs)对应我们之前的时间复杂度,计算量要看网络执行时间的长短 PS: FLOPS:全大写,意指每秒浮点运算次数,理解为计算速度,是一个衡量硬件性能的指标。 FLOPs:s小写&#xff0…

R语言参数估计笔记及例题

R语言参数估计 目录 R语言参数估计 1.R语言点估计 1.1定义 1.2 例题 2.R语言正态总体均值区间评估 2.1定义 2.2方差已知时,求置信区间 2.2.1自定义函数 2.2.2例题 2.3方差未知时,求置信区间 2.3.1调用内置函数t.test() 2.3.2例题 3.R语言单…

Libsvm网格参数寻优教程

原文:http://endual.iteye.com/blog/1262010 首先下载Libsvm、Python和Gnuplot: l libsvm的主页http://www.csie.ntu.edu.tw/~cjlin/libsvm/上下载libsvm (我自己用2.86版本) l python的主页http://www.python…

SVM模型应用(四)SVM模型的超参数选择

SVM模型超参数优化目前常用的方法是让C和g在一定的范围内取值,对于取定的c和g,把训练集作为原始数据集利用K-CV方法得到在此对c和g组合下验证集的分类准确率,最终取得训练集验证分类准确率最高的那组c和g作为最佳参数。对于可能会有多组的c和…

yolov4训练网络配置及参数配置

1、网络模型 主要修改classes和其上一层网络层输出(classes5)*3->(classes[xmin,ymin,xmax,ymax,c])*Scalar lr_rate和max_batches自行配置,建议初始学习率设置为0.001,max_batchesclasses*2000 [net] # Testing #batch1 #s…

Highcharts的选项配置参数

Chart:图表区选项 Chart图表区选项用于设置图表区相关属性。 参数描述默认值backgroundColor设置图表区背景色#FFFFFFborderWidth设置图表边框宽度0borderRadius设置图表边框圆角角度5renderTo图表放置的容器,一般在html中放置一个DIV,获取D…

非参数统计检验

非参数统计的方法用于总体分布未知的情形,其目的在于检验一个变量的分布在不同组中是否具有相同的位置参数。 NPAR1WAY语句 功能 格式: proc npar1way data数据集名 [选项]; by 变量名; class 变量名; var 变量名; run;注: proc的选项&am…