news 2026/4/18 1:34:42

ArgoCD GitOps实战:声明式持续交付与多集群管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ArgoCD GitOps实战:声明式持续交付与多集群管理

为什么要GitOps

传统的CI/CD流程:

代码提交 → CI构建 → 推送镜像 → CD脚本执行kubectl apply

这个流程有几个问题:

  1. 状态漂移:有人手动改了集群配置,CI/CD不知道
  2. 回滚困难:出问题了想回滚,得翻找历史构建记录
  3. 审计缺失:谁改了什么、什么时候改的,不清楚
  4. 多环境同步:dev、staging、prod三套环境,配置容易不一致

GitOps的核心思想:Git是唯一的真相来源

  • 所有配置都在Git仓库里
  • 集群状态必须和Git仓库一致
  • 任何变更都通过Git提交
  • 漂移会被自动修复或告警

ArgoCD就是实现GitOps的工具,它持续监控Git仓库,发现差异就自动同步。

架构概览

┌──────────────────────────────────────────────────────────────┐ │ ArgoCD Server │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │ │ API Server │ │ Repo Server │ │ Application Controller│ │ │ └─────────────┘ └─────────────┘ └─────────────────────┘ │ └──────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ ▼ ▼ ▼ ┌─────────┐ ┌──────────┐ ┌──────────────┐ │ UI │ │ Git │ │ Kubernetes │ │ CLI │ │ Repos │ │ Clusters │ └─────────┘ └──────────┘ └──────────────┘

核心组件:

  • API Server:提供REST/gRPC API,处理UI和CLI请求
  • Repo Server:克隆Git仓库,生成Kubernetes manifests
  • Application Controller:监控应用状态,执行同步操作

安装部署

快速安装

# 创建命名空间kubectl create namespace argocd# 安装ArgoCDkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml# 等待Pod就绪kubectlwait--for=condition=Ready pods --all -n argocd --timeout=300s# 获取初始密码kubectl -n argocd get secret argocd-initial-admin-secret -ojsonpath="{.data.password}"|base64 -d

高可用部署

生产环境用HA模式:

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/ha/install.yaml

或者用Helm更灵活:

# argocd-values.yamlglobal:image:tag:v2.9.3controller:replicas:2resources:requests:cpu:250mmemory:512Milimits:cpu:1000mmemory:1Giserver:replicas:2service:type:LoadBalancerrepoServer:replicas:2resources:requests:cpu:100mmemory:256Milimits:cpu:500mmemory:512Miredis-ha:enabled:truereplicas:3configs:params:server.insecure:true# 如果前面有LB做TLS
helm repoaddargo https://argoproj.github.io/argo-helm helminstallargocd argo/argo-cd -n argocd -f argocd-values.yaml

基础使用

连接Git仓库

# 安装CLIbrewinstallargocd# 登录argocd login argocd.example.com# 添加私有仓库(SSH)argocd repoaddgit@github.com:org/manifests.git\--ssh-private-key-path ~/.ssh/id_rsa# 添加私有仓库(HTTPS)argocd repoaddhttps://github.com/org/manifests.git\--username admin\--password token123

创建应用

YAML方式(推荐):

apiVersion:argoproj.io/v1alpha1kind:Applicationmetadata:name:guestbooknamespace:argocdspec:project:defaultsource:repoURL:https://github.com/argoproj/argocd-example-apps.gittargetRevision:HEADpath:guestbookdestination:server:https://kubernetes.default.svcnamespace:guestbooksyncPolicy:automated:prune:true# 删除Git中不存在的资源selfHeal:true# 自动修复漂移allowEmpty
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:29:02

GESP认证C++编程真题解析 | P10722 [GESP202406 六级] 二叉树

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

作者头像 李华
网站建设 2026/4/18 3:37:41

PE42441C-Z,10 MHz至8 GHz宽频带的的射频开关, 现货库存

型号介绍今天我要向大家介绍的是 pSemi 的一款射频开关——PE42441C-Z。 它拥有低插入损耗和高隔离度,这意味着信号在传输过程中几乎没有损失,并且能够有效隔离不同端口之间的信号干扰。它还拥有高线性度,这意味着它能够处理各种强度的信号&a…

作者头像 李华
网站建设 2026/4/18 3:33:51

如何在生产环境稳定运行Open-AutoGLM?资深工程师亲授6大部署要诀

第一章:快速部署Open-AutoGLMOpen-AutoGLM 是一个开源的自动化代码生成框架,基于大语言模型实现从自然语言到可执行代码的转换。其设计目标是简化开发流程,提升编码效率,尤其适用于需要频繁生成脚本或模板代码的场景。环境准备 在…

作者头像 李华
网站建设 2026/4/18 3:38:14

Open-AutoGLM模型部署避坑指南:5个常见错误及解决方案

第一章:智谱开源Open-AutoGLM模型,怎么使用Open-AutoGLM 是智谱AI推出的开源自动化自然语言处理模型,专注于低代码甚至零代码场景下的任务自动建模。该模型支持分类、生成、信息抽取等多种NLP任务,用户可通过简单的接口调用完成复杂建模流程。…

作者头像 李华