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 负责安全地一点点上线。
相关推荐
珂玥c6 小时前
k8s集群网络插件caclico切换为flannel
云原生·容器·kubernetes
Zhu7587 小时前
【问题处理】minIO(AIStor)在k8s部署后,API访问失败的问题,TLS
云原生·容器·kubernetes
临街的小孩7 小时前
Docker 容器内运行 ROS Noetic 图形界面(rqt_image_view)极简教程总结
运维·docker·容器
Altruiste9 小时前
minikube 搭clickhouse 集群
clickhouse·kubernetes
古城小栈10 小时前
通过 Kind 快速构建 k8s 集群
云原生·kubernetes·kind
Apache RocketMQ10 小时前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq
smileNicky11 小时前
Docker 部署 SpringBoot 项目超详细教程
spring boot·docker·容器
珂玥c12 小时前
kubeadm方式部署 k8s 1.21
云原生·容器·kubernetes
小义_13 小时前
【Kubernetes】(十九)监控与升级
云原生·容器·kubernetes
炸炸鱼.14 小时前
Kubernetes Pod 深度理解:从入门到实战
云原生·容器·kubernetes·pod