惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

陈少文的网站

容器化部署 Hermes Agent 部署 JuiceFS CSI Driver 使用 A2A Gateway 打通多 OpenClaw Loggie 部署与配置 OpenClaw 运维 - 让飞轮转起来 你也可以这样落地 AI Agent - SOPS 篇 AGFS 文件系统性能测试 面向 AI Agent 的文件系统 - AGFS OpenViking 使用与 OpenClaw 集成 如何远程给OpenClaw发送消息 容器化部署 OpenClaw 使用 Skills 和 MCP 扩展 OpenClaw OpenClaw 安装与配置 LVM 日常运维 MinIO 基础设施选型与优化 容器部署 ClickHouse 容器化部署 Redis 容器部署中间件 容器部署多节点 FoundationDB 及运维 使用 HAProxy 代理 MinIO 及性能测试 多机多盘 MinIO 集群在不同纠删码配置下的性能测试 多机多盘 minio 集群不同纠删码配置在 IPoIB 下的性能测试 MinIO 多节点多盘部署与运维 Cursor 之下,何以立足 你也可以这样落地 AI Agent - MCP 篇 阿里云 eRDMA 测试及 PD 分离应用部署 你也可以这样落地 AI Agent - 运维事件篇 常见的几种 LLM Agent 架构 你也可以这样落地 AI Agent - 案例篇 ext4、xfs、zfs、btrfs 在 RAID6 下的性能测试 RAID 下 ZFS 运维操作 RAID 下 XFS 运维操作 RAID 下 Btrfs 运维操作 xfs 在各种 RAID 下的性能测试 RAID 存储技术 使用 LLaMA-Factory 微调 Qwen3 模型 vLLM 部署 PD 分离应用 使用 lmcache 能显著改善模型推理的 TTFT 什么是 Prefix Cache NVIDIA RTX 5090 推理测试 什么是模型量化 Kubernetes 基础环境要求 如何升级 Kubernetes 节点的 cgroup 版本 在服务器上使用 claude-code 常用 NPU 运维及故障处理 NVIDIA DCGM 使用指南 如何清理僵尸进程 使用 VLLM Benchmark 进行模型性能测试 眼看他拔地起,眼看他化作泥 - KubeSphere 在 Kubernetes 集群部署 Dragonfly history 命令使用 AI 相关论文 在服务器上使用 Gemini CLI Ascend DMI 工具使用指南 Kubernetes 下开源的 GPU 虚拟化项目 FoundationDB 数据备份与恢复 认知觉醒 给 Node Exporter 添加抓取凭证 部署 smokeping-prober 探测网络质量 Opscli 支持 MCP 提供 Cline\Cursor 集成 kube-proxy 异常导致节点上的 Pod 无法访问 Service 为什么 NFS Over RDMA 比 NFS 的 FIO 大块读性能好很多 3FS 关键技术和设计 DeepSeek 3FS 运维指南 容器化部署 DeepSeek 3FS 存储系统 3FS 的一些性能测试 在 Kubernetes 中使用 Fluid 挂载 3FS 存储及性能测试 NFS Over RDMA kubectl logs 无法查看 Pod 日志报错 NotFound 使用 Dante 提供 SOCKS5 转发 使用 Calico 限制 Pod 的带宽 分布式计算框架 Ray 以 Qwen 为例,学习大模型的结构 NVIDIA 环境变量配置 Ascend 环境变量配置 Fluid 下的 Juicefs 企业版维护 使用 vLLM 进行模型推理 使用 Nerdctl 构建多架构镜像 使用 vLLM 应用验证推理节点 AI 应用开发技术栈 在 Kubernetes 部署 Jumpserver 跳板机 使用 Ops 项目查看并监控集群事件 使用 Fluid 和 S3FS 对接 S3 存储及性能测试 使用 Fluid 对接 S3 存储及性能测试 使用 TensorBoard 可视化 PyTorch 训练过程 使用 PyTorch 在 MNIST 数据集训练模型 Ubuntu 切换指定版本的内核 MPI 通信原语及 Python 编程使用 Ops 发布 v1.0.0 版本 常见的几种网络拓扑结构 RDMA 技术 SR-IOV 技术 InfiniBand 网络及常用命令 使用 Fluid 对接 OBS 存储及性能测试 使用 Iceberg 和 Spark 在 Kubernetes 上处理数据 GPU 主机如何开启 GDS 什么是 Token 什么是 FLOPs 什么是 PD 分离 Kubernetes 下的 DLRover 工作流程分析
Argo 核心组件介绍
2024-02-23 · via 陈少文的网站

1. argo 介绍

Argo 是一个开源项目,它在 Kubernetes 上提供了一系列工具,用于构建和运行应用程序。Argo 的核心组件主要包括以下几个:

  • Argo CD

Argo CD 是一个基于 GitOps 的持续交付工具,它允许用户声明式地管理 Kubernetes 集群中的应用部署。Argo CD 通过与 Git 仓库同步,确保集群状态与 Git 仓库中定义的状态保持一致。

  • Argo Workflows

这是一个基于容器的任务编排工具,它允许用户定义、运行和监控复杂的工作流。Argo Workflows 支持多种类型的工作流,包括顺序、并行、条件和循环等。

  • Argo Events

这是一个事件驱动工具,它提供了一种机制来处理来自外部系统的事件,并触发 Kubernetes 集群内的操作。Argo Events 包括事件源(EventSources)、事件总线(EventBus)、传感器(Sensors)和触发器(Triggers)等组件。

  • Argo Rollouts

Argo Rollouts 是一个应用渐进式发布工具,它支持金丝雀发布、蓝绿发布等策略,帮助用户安全地更新和回滚 Kubernetes 集群中的应用。

2. argo-cd

2.1 安装

1
kubectl create namespace argocd
1
kubectl apply -n argocd -f https://raw.githubusercontent.com/shaowenchen/ops-hub/master/argo/v2.10.1-argo-cd.yaml

2.2 相关 CRD 列表

1
2
3
4
5
6
kubectl get crd |grep argo

applications.argoproj.io               2024-02-23T01:49:08Z
applicationsets.argoproj.io            2024-02-23T01:49:08Z
appprojects.argoproj.io                2024-02-23T01:49:08Z
...
  • applications.argoproj.io

这个 CRD 定义了 Argo CD 中的 Application 资源。Application 是 Argo CD 的核心概念之一,它代表了在 Kubernetes 集群中部署的一组资源(如 Pods、Services 等)的期望状态。Application 资源通常与 Git 仓库中的配置文件关联,允许用户通过 GitOps 的方式管理应用的部署和更新。

  • applicationsets.argoproj.io

ApplicationSet 是 Argo CD 的一个扩展,它提供了自动化和更灵活的管理能力,特别是在处理大量集群和单体仓库(monorepo)时。ApplicationSet 允许用户使用单个 Kubernetes 清单(manifest)来针对多个 Kubernetes 集群部署 Argo CD 应用。它还支持在多租户 Kubernetes 集群中,让单个集群租户使用 Argo CD 部署应用,而无需集群管理员介入。ApplicationSet 通过使用不同的生成器(如列表生成器、集群生成器、Git 生成器等)来生成参数,这些参数随后被用于模板渲染,从而创建或更新 Argo CD 应用。

  • appprojects.argoproj.io

AppProject 资源在 Argo CD 中用于逻辑上组织 Application 资源。它定义了一组应用可以部署到的 Git 仓库、目标集群和命名空间,以及这些应用的访问控制策略。AppProject 允许用户定义源仓库(sourceRepos)、目标集群(destinations)和角色(roles),这些角色定义了用户或服务账户对项目内资源的访问权限。这使得管理员可以更精细地控制谁可以部署哪些应用到哪些集群。

3. argo-workflows

3.1 安装

1
kubectl create namespace argo
1
kubectl apply -n argo -f https://raw.githubusercontent.com/shaowenchen/ops-hub/master/argo/v3.5.4-argo-workflows.yaml

3.2 相关 CRD

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
kubectl get crd |grep argo

clusterworkflowtemplates.argoproj.io   2024-02-23T01:25:07Z
cronworkflows.argoproj.io              2024-02-23T01:25:07Z
workflowartifactgctasks.argoproj.io    2024-02-23T01:25:07Z
workfloweventbindings.argoproj.io      2024-02-23T01:25:07Z
workflows.argoproj.io                  2024-02-23T01:25:07Z
workflowtaskresults.argoproj.io        2024-02-23T01:25:07Z
workflowtasksets.argoproj.io           2024-02-23T01:25:07Z
workflowtemplates.argoproj.io          2024-02-23T01:25:07Z
...
  • clusterworkflowtemplates.argoproj.io

ClusterWorkflowTemplate 是一种资源,它允许用户定义工作流模板,这些模板可以在集群范围内共享和重用。它类似于 WorkflowTemplate,但具有更高的权限级别,可以在任何命名空间中使用。

  • cronworkflows.argoproj.io

CronWorkflow 资源用于定义按计划执行的工作流。它类似于 Kubernetes 中的 CronJob,允许用户设置定时任务,以便在指定的时间间隔内自动启动工作流。

  • workflowartifactgctasks.argoproj.io

WorkflowArtifactGCTask 是一种用于清理工作流执行后遗留的资源的任务。这有助于维护集群的整洁,避免资源泄露。

  • workfloweventbindings.argoproj.io

WorkflowEventBinding 资源用于定义工作流事件的绑定,它允许用户根据 Kubernetes 事件(如 Pod 完成、ConfigMap 更新等)触发工作流的执行。

  • workflows.argoproj.io

Workflow 是 Argo Workflows 中的核心资源类型,它定义了一个由多个步骤(任务)组成的工作流。每个步骤可以是一个容器、一个脚本或者其他类型的操作,它们按顺序或并行执行。

  • workflowtaskresults.argoproj.io

WorkflowTaskResult 资源用于存储工作流任务的执行结果。这有助于在工作流中传递数据,或者在任务失败时进行调试。

  • workflowtasksets.argoproj.io

WorkflowTasksSet 是一种资源,它允许用户定义一组工作流任务,这些任务可以作为模板在多个工作流中重用。

  • workflowtemplates.argoproj.io

WorkflowTemplate 是一种资源,它定义了一个工作流模板,可以在特定命名空间内共享和重用。它类似于 ClusterWorkflowTemplate,但作用范围限制在单个命名空间内。

4. argo-events

4.1 安装

1
kubectl create namespace argo-events
1
kubectl apply -n argo-events -f https://raw.githubusercontent.com/shaowenchen/ops-hub/master/argo/v1.9.1-argo-events.yaml

可选安装 validating webhook

1
kubectl apply -n argo-events -f https://raw.githubusercontent.com/shaowenchen/ops-hub/master/argo/v1.9.1-argo-events-validating-webhook.yaml

4.2 相关 CRD

1
2
3
4
5
6
kubectl get crd |grep argo

eventbus.argoproj.io                   2024-02-23T01:35:46Z
eventsources.argoproj.io               2024-02-23T01:35:46Z
sensors.argoproj.io                    2024-02-23T01:35:46Z
...
  • eventbus.argoproj.io

EventBus 是 Argo Events 中的一个核心资源,它负责在事件源(EventSources)和传感器(Sensors)之间传输事件。EventBus 可以基于 NATS Streaming 或 Kafka 构建,它提供了一种机制来确保事件在集群内可靠地传递。EventBus 资源定义了事件传输的配置,包括使用的后端消息系统、认证策略、持久化设置等。

  • eventsources.argoproj.io

EventSource 资源定义了如何从外部服务(如 Kafka、GitHub、Slack 等)消费事件。它指定了事件源的类型、连接信息、过滤条件等。当观察到匹配过滤条件的事件时,EventSource 会将这些事件写入到 EventBus。EventSource 可以是原生的(如基于 NATS Streaming 的 EventSource)或者是异构的(如连接到现有的 Kafka 集群)。

  • sensors.argoproj.io

Sensor 资源定义了在 EventBus 上监听特定事件的逻辑,并在匹配事件时触发相应的响应。Sensor 运行在由 sensor-controller 管理的 Pod 中,它可以定义触发器(Triggers),这些触发器可以是 HTTP 请求、Kubernetes 对象操作、Slack 消息等。当 Sensor 观察到匹配的事件时,它会执行定义的操作,例如创建或更新 Kubernetes 资源。

5. Argo rollouts

5.1 安装

1
kubectl create namespace argo-rollouts
1
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/shaowenchen/ops-hub/master/argo/v1.6.6-argo-rollouts.yaml

可选安装 dashboard

1
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/shaowenchen/ops-hub/master/argo/v1.6.6-argo-rollouts-dashboard.yaml

5.2 相关 CRD

1
2
3
4
5
6
7
8
kubectl get crd |grep argo

analysisruns.argoproj.io               2024-02-23T02:24:15Z
analysistemplates.argoproj.io          2024-02-23T02:24:15Z
clusteranalysistemplates.argoproj.io   2024-02-23T02:24:15Z
experiments.argoproj.io                2024-02-23T02:24:15Z
rollouts.argoproj.io                   2024-02-23T02:24:15Z
...
  • analysisruns.argoproj.io

AnalysisRun 资源用于定义和管理分析任务的执行。这些分析任务可以在部署过程中运行,以评估新版本的表现,例如通过比较新旧版本的指标。AnalysisRun 可以与 Experiment 资源关联,以在实验过程中执行分析。

  • analysistemplates.argoproj.io

AnalysisTemplate 是一个模板资源,它定义了分析任务的配置,但不立即执行。AnalysisTemplate 可以被 AnalysisRun 引用,以便在需要时创建和执行分析任务。

  • clusteranalysistemplates.argoproj.io

ClusterAnalysisTemplate 类似于 AnalysisTemplate,但它具有集群范围的作用域。这意味着它可以在多个命名空间中被引用和使用,而不仅仅是在定义它的命名空间中。

  • experiments.argoproj.io

Experiment 资源用于定义和管理实验,这些实验通常用于比较新旧版本的应用性能。Experiment 可以包含多个 AnalysisRun,以便在实验过程中执行多个分析任务。实验的结果可以用来决定是否将新版本推广到生产环境。

  • rollouts.argoproj.io

Rollout 是 Argo Rollouts 中的核心资源类型,它用于定义和管理应用的渐进式部署。Rollout 允许用户逐步将新版本的应用推送到生产环境,同时监控部署过程中的指标,以确保新版本的稳定性。Rollout 支持多种策略,如金丝雀发布、蓝绿部署等。