news 2026/1/3 12:35:05

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/1/2 10:37:54

掌握Open-AutoGLM智能体电脑功能(从入门到精通的实战手册)

第一章:Open-AutoGLM智能体电脑功能概述Open-AutoGLM 是一款基于大语言模型驱动的智能体操作系统,专为自动化任务执行、自然语言交互与多模态计算场景设计。其核心架构融合了推理引擎、任务规划模块与外部工具调用接口,能够在无人干预的情况下…

作者头像 李华
网站建设 2025/12/25 19:46:16

Python如何把人体姿态向量化

想象一下,你正在开发一款AI健身教练APP。用户对着摄像头做深蹲,APP需要实时判断:“膝盖弯曲角度够不够?背是不是挺直的?” 计算机看不懂视频里的“人”,它只看得懂数字。如果你把一张照片扔给神经网络&…

作者头像 李华
网站建设 2025/12/25 19:46:14

Open-AutoGLM电脑版怎么没了?3大原因曝光及2024最新迁移指南

第一章:Open-AutoGLM电脑版怎么没了?近期,不少用户反馈在尝试访问 Open-AutoGLM 的电脑版本时发现官网链接失效或客户端无法下载,引发广泛关注。这一现象背后并非产品彻底下架,而是项目方正在进行架构调整与平台整合。…

作者头像 李华
网站建设 2025/12/26 7:13:47

Open-AutoGLM架构选择之谜:揭开它背后不为人知的轻量化运行逻辑

第一章:Open-AutoGLM架构选择之谜:揭开它背后不为人知的轻量化运行逻辑Open-AutoGLM 作为新一代开源自动语言建模框架,其核心竞争力不仅体现在推理能力上,更在于其精心设计的轻量化运行机制。该架构通过动态稀疏注意力与模块化前馈…

作者头像 李华
网站建设 2025/12/26 7:12:59

国外的文献怎么找:实用查找方法与资源平台推荐

生成式人工智能的浪潮正引发各领域的颠覆性变革,在学术研究这一知识生产的前沿阵地,其影响尤为显著。文献检索作为科研工作的基石,在AI技术的赋能下各大学术数据库已实现智能化升级。小编特别策划"AI科研导航"系列专题,…

作者头像 李华