尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【云原生与DevOps】05-GitOps工作流:ArgoCD+GitHub Actions完整方案

【云原生与DevOps】05-GitOps工作流:ArgoCD+GitHub Actions完整方案
📅 发布时间:2026/7/1 1:46:02

专栏:云原生 & DevOps
难度:进阶
标签:GitOpsArgoCDGitHub ActionsK8s自动化部署


前言

GitOps 的核心思想:Git 是唯一事实来源,所有变更都通过 Git PR 触发。本文实现一套完整的 GitOps 流水线。


一、架构设计

开发者 push 代码 ↓ GitHub Actions(CI) - 构建镜像 - 推送到 Registry - 更新 GitOps 仓库中的镜像 tag ↓ ArgoCD(CD) - 监控 GitOps 仓库变化 - 自动同步到 K8s 集群

二、安装 ArgoCD

kubectl create namespace argocd kubectl apply-nargocd-f\https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml# 等待Pod就绪kubectlwait--for=condition=available\deployment/argocd-server-nargocd--timeout=300s# 获取初始密码kubectl-nargocd get secret argocd-initial-admin-secret\-ojsonpath="{.data.password}"|base64-d# 暴露UI(开发用)kubectl port-forward svc/argocd-server-nargocd8080:443

三、创建 ArgoCD Application

# argocd-app.yamlapiVersion:argoproj.io/v1alpha1kind:Applicationmetadata:name:myapp-productionnamespace:argocdspec:project:defaultsource:repoURL:https://github.com/yourorg/gitops-configs.gittargetRevision:mainpath:apps/myapp/overlays/productiondestination:server:https://kubernetes.default.svcnamespace:productionsyncPolicy:automated:prune:true# 自动删除Git中不存在的资源selfHeal:true# 检测到集群状态与Git不符时自动修复syncOptions:-CreateNamespace=true

四、GitHub Actions 工作流

# .github/workflows/ci-cd.ymlname:CI/CD Pipelineon:push:branches:[main]pull_request:branches:[main]env:REGISTRY:ghcr.ioIMAGE_NAME:${{github.repository}}GITOPS_REPO:yourorg/gitops-configsjobs:build-and-push:runs-on:ubuntu-latestoutputs:image-tag:${{steps.meta.outputs.version}}steps:-uses:actions/checkout@v4-name:Docker metaid:metauses:docker/metadata-action@v5with:images:${{env.REGISTRY}}/${{env.IMAGE_NAME}}tags:|type=sha,prefix=,suffix=,format=short-name:Build and pushuses:docker/build-push-action@v5with:push:${{github.event_name!='pull_request'}}tags:${{steps.meta.outputs.tags}}update-gitops:needs:build-and-pushif:github.ref == 'refs/heads/main'runs-on:ubuntu-lateststeps:-uses:actions/checkout@v4with:repository:${{env.GITOPS_REPO}}token:${{secrets.GITOPS_TOKEN}}-name:Update image tagrun:|cd apps/myapp/overlays/production sed -i "s|newTag:.*|newTag: ${{ needs.build-and-push.outputs.image-tag }}|" kustomization.yaml-name:Commit and pushrun:|git config user.email "ci@example.com" git config user.name "CI Bot" git add . git commit -m "ci: update myapp to ${{ needs.build-and-push.outputs.image-tag }}" git push

五、回滚操作

# 通过ArgoCD UI或命令行回滚argocd apphistorymyapp-production argocd app rollback myapp-production<REVISION># 或者通过Git回滚(推荐,有记录)gitrevert HEADgitpush

结语:GitOps 最大的价值是审计性——所有变更都有 Git 记录,随时可以追溯谁在什么时候改了什么。这对于合规要求高的场景非常重要。

相关新闻

  • 批量图片翻译视频字幕智能抠图一站式解决跨境电商难题
  • 2026年家电原生智能品牌实用推荐
  • 浏览器中的专业SVG编辑器:如何用SVG-Edit解决矢量图形编辑难题

最新新闻

  • Dify实战指南:从零构建企业级AI应用,告别手搓代码
  • 低温环境下风电液压系统应选用什么液压油?——美孚产品深度解析
  • TSN核心厂商如何构建竞争壁垒?三旺通信给出完整答案
  • Claude Code安装配置全指南:从VS Code扩展到AI编程助手实战
  • 1500公里跑掉的21斤,我用15个月又长了回来——36岁,我决定重返跑步的江湖
  • 2026年7月国内充值 GPT:为什么我不再建议只找低价渠道?

日新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号