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 负责安全地一点点上线。
相关推荐
立莹Sir20 小时前
商品中台架构设计与技术落地实践——基于Spring Cloud微服务体系的完整解决方案
分布式·后端·spring cloud·docker·容器·架构·kubernetes
雨奔1 天前
Kubernetes 联邦 Deployment 指南:跨集群统一管理 Pod
java·容器·kubernetes
雨奔1 天前
Kubernetes StatefulSet 详解:有状态服务的部署与管理实战
云原生·容器·kubernetes
成为你的宁宁1 天前
【K8s ConfigMap 配置管理创建、挂载与热更新实践】
云原生·容器·kubernetes
Dillon Dong1 天前
【系统运维】Docker版本冲突问题详解:从错误到解决方案
docker·容器
Dillon Dong1 天前
【系列主题】从 Docker 构建失败看依赖隔离:多阶段构建的“隐形陷阱”
运维·docker·容器
如果'\'真能转义说2 天前
《数据不丢失!本地挂载的 Docker 一键启动PS1脚本》
运维·docker·容器
郝开2 天前
Docker Compose 本地环境搭建:mysql
mysql·docker·容器
人工智能培训2 天前
AI模型部署进阶:Docker容器化部署AI项目
人工智能·深度学习·机器学习·docker·容器·transformer·知识图谱
胡小禾2 天前
K8S Helm
docker·容器·kubernetes