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 负责安全地一点点上线。
相关推荐
Chasing__Dreams15 分钟前
Go 语言学习笔记
云原生·容器·kubernetes
聚搜云——JuSouClouD1 小时前
深圳阿里云代理商:K8s Pod OOM智能排查修复指南
阿里云·kubernetes·云计算
明王明王2 小时前
从零搭建一个单节点 K8S 可观测实验室(六):安装 Tempo + OpenTelemetry,构建链路追踪链路
云原生·容器·kubernetes
wsad05322 小时前
Docker 网络故障排查记:当 bridge 模式失效时,host 模式如何救场
运维·docker·容器
张毅2004-10-102 小时前
docker详解:安装docker,docker架构,docker镜像、容器、网络、存储,容器监控,容器日志,综合实验
linux·运维·docker·云原生·云计算
小狼嚎月2 小时前
K8s PV / PVC / StorageClass 有状态应用持久化
云原生·容器·kubernetes
AAA@峥3 小时前
K8s 资源混乱怎么办?Namespace 隔离 + 上下文切换实战
容器·贪心算法·kubernetes
重庆小透明3 小时前
深入探寻微服务【第一篇微服务的坏】
微服务·云原生·架构
Zhu7589 小时前
在k8s集群部署MySQL单实例,支持多个主流发行版
android·mysql·kubernetes
张文君12 小时前
docker使用代理拉取镜像
运维·docker·容器