kubernetes Argo简介

目录

  • [一. 简介](#一. 简介)
  • [二. Argo CD](#二. Argo CD)
  • [三. Argo Rollouts](#三. Argo Rollouts)
  • [四. 总结](#四. 总结)

一. 简介

🔷云原生领域里由 Argo Project 提供的一套 建立在Kubernetes上的原生工具集,用来做 CI/CD、部署、工作流编排 等事情。

  • 核心思想是:一切用 YAML 声明,然后由控制器自动执行(GitOps)。
功能 Kubernetes Argo
部署应用 Deployment Argo CD
发布策略 基础 rolling update Rollouts(高级)
工作流 没有 Workflows
自动化 很弱 Events

二. Argo CD

🔷Argo CD的作用

  • 自动部署应用到 Kubernetes
  • Git 仓库 = 真正的配置来源(GitOps)
bash 复制代码
Git(YAML配置)
   ↓
Argo CD 自动同步
   ↓
Kubernetes 集群
  • 查看Argo CD管理的application的状态,例如application中的资源状态和GitLab中的是否相同。
bash 复制代码
kubectl -n argocd get applications | grep keystore
  • Synced:集群状态 等于 Git状态,已经同步
  • OutOfSync:集群状态 不等于 Git状态,没有同步
    • GitLab中的资源被修改,但没同步到集群中
    • 手动使用kubectl改过资源
    • configmap 被修改了
  • 查看指定application的信息
bash 复制代码
kubectl -n argocd describe application application名称
  • 查看指定application的定义文件
bash 复制代码
kubectl -n argocd get application application名称 -o yaml

三. Argo Rollouts

🔷相比于Kubernetes原生的Deployment,Argo Rollouts是更加高级的发布策略,主要控制的是应用怎么上线。

  • 普通 Kubernetes:

    bash 复制代码
    直接替换 Pod(风险大)
  • Argo Rollouts:

    bash 复制代码
    新版本 → 10% → 30% → 100%
      ↓
    观察是否出问题
功能 说明
蓝绿发布 Blue/Green
金丝雀发布 Canary
灰度发布 分批上线
自动回滚 失败自动撤回
  • 确认rollouts的名称
bash 复制代码
kubectl -n cocoa get rollouts | grep mpl
  • 重启指定的rollouts
  • 安装了kubectl-argo-rollouts插件之后才能使用argo命令
bash 复制代码
kubectl argo rollouts restart rollouts名称 -n cocoa

四. 总结

🔷Kubernetes + Argo CD(GitOps) + Argo Rollouts(渐进式发布) = 云原生自动化发布体系

1️⃣ Kubernetes 👉 基础设施层

负责:

  • 调度容器(Pod)
  • 资源管理
  • 服务发现

2️⃣ Argo CD 👉 部署控制层(核心)

负责:

  • 从 GitLab 同步配置
  • 自动 apply 到Kubernetes集群

3️⃣ Argo Rollouts 👉 发布策略层,控制如何上线。

负责:

  • 灰度发布(Canary)
  • 蓝绿发布(Blue/Green)
  • 自动回滚
bash 复制代码
GitLab(配置)
   ↓
Argo CD(负责"部署")
   ↓
Kubernetes(负责"运行")
   ↓
Argo Rollouts(负责"发布策略")
bash 复制代码
Kubernetes 负责跑程序,
Argo CD 负责把代码部署上去,
Argo Rollouts 负责安全地一点点上线。
相关推荐
慈云数据19 分钟前
用 DSH 辅助部署一个网站监控平台:Uptime Kuma + Docker 实战
运维·docker·容器
大腾智能24 分钟前
普通笔记本跑CAD,云原生和本地安装差在哪
云原生·国产cad·cad软件·云原生cad
螺蛳粉 螺蛳粉35 分钟前
第 03 篇:为什么 K8s 的最小调度单元是 Pod 而不是容器:pause 容器与边车模式(底座认知 03)
docker·云原生·容器·kubernetes·etcd·运维排障·kube-apiserver
艾伦_耶格宇44 分钟前
【kubernetes - 1.28版本】-9 K8S-dashbord可视化界面
云原生·容器·kubernetes
阿里云云原生16 小时前
Agent 数据飞轮平台的选型和实践
云原生
做运维的阿瑞17 小时前
云项目可观测性与成本治理:告警、日志、Dashboard 与预算标签
大数据·云原生·云计算·terraform
无人生还别怕18 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
知已难寻18 小时前
01 · OpenStack的认证管理 Keystone
运维·服务器·云原生·云计算·openstack
分布式存储与RustFS19 小时前
模型权重散落在每台 GPU?用 RustFS 给 vLLM 做共享权重库
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
木雷坞19 小时前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器