花了3小时排坑,我终于搞懂了ArgoCD到底运行在哪里
花了3小时排坑我终于搞懂了ArgoCD到底运行在哪里一次从sed命令找不到到GitOps灵魂觉醒的排坑实录一、一切从一个找不到开始作为一个刚入坑GitOps的萌新我信心满满地在Windows PowerShell里敲下了这行命令powershellsed -i s|elishatheodore/kubernetes-microservices|zxcspider/kubernetes-microservices|g gitops/argocd/application.yaml结果迎来了熟悉的红色报错textsed : 无法将sed项识别为 cmdlet、函数、脚本文件或可运行程序的名称。好家伙Windows不认sed这我认了。但接下来我遇到的一系列问题让我开始思考一个更本质的问题我到底在操作什么Git仓库里的文件还是集群里正在运行的东西带着这个困惑我开始了ArgoCD的排坑之旅。而当我终于搞明白ArgoCD到底运行在哪里的那一刻GitOps的大门才算真正向我敞开。二、误入歧途我以为ArgoCD是运行在Git里的刚开始接触ArgoCD时我有个天真的理解ArgoCD是不是像个Git钩子我push代码它就触发一下把YAML文件拼好发给K8s这个理解不全错但漏掉了最关键的一半。顺着这个思路我犯了两个典型错误错误一在Windows上硬刚Linux命令我试图用sed修改application.yaml文件完全没意识到sed是Unix/Linux工具Windows默认没有-i 是macOS BSD sed的语法Windows就算装了GNU sed也不认后来我用PowerShell原生命令解决了这个问题但那是后话了错误二以为改完Git文件就万事大吉我手动改完values-prod.yaml里的replicaCount提交推送然后盯着终端等结果完全不知道ArgoCD其实是一个一直在集群里跑着的程序。三、醍醐灌顶ArgoCD到底运行在哪在经历了以下操作后我终于找到了答案1. 我安装了ArgoCD在K8s集群里安装的powershellkubectl apply --server-side --force-conflicts -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml注意看-n argocdArgoCD是安装在Kubernetes集群的argocd命名空间里的。2. 查看ArgoCD的Podpowershellkubectl get pods -n argocd输出大概是这样的textNAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 5m argocd-applicationset-controller-xxxxxxxxx-xxxxx 1/1 Running 0 5m argocd-dex-server-xxxxxxxxx-xxxxx 1/1 Running 0 5m argocd-redis-xxxxxxxxx-xxxxx 1/1 Running 0 5m argocd-repo-server-xxxxxxxxx-xxxxx 1/1 Running 0 5m argocd-server-xxxxxxxxx-xxxxx 1/1 Running 0 5m看到了吗ArgoCD是一组Pod它们跑在Kubernetes集群内部。四、灵魂拷问ArgoCD到底在维护什么搞清楚了ArgoCD的运行位置下一个问题自然来了ArgoCD到底是在维护Git里的YAML文件还是在维护集群里真正运行的资源为了验证这个问题我做了两个实验实验一绕过Git直接改集群powershell# 把副本数从1改成5Git里定义的是1 kubectl scale deployment camp-dev-backend -n camp-dev --replicas5过了一两分钟再查看powershellkubectl get deployment camp-dev-backend -n camp-dev结果副本数又变回1了ArgoCD的selfHeal: true机制生效了——它检测到集群状态与Git定义不符直接在集群内部执行了kubectl scale ... --replicas1。实验二在集群里创建Git中没有的资源powershellkubectl create configmap test-config -n camp-dev几分钟后powershellkubectl get configmap test-config -n camp-dev # Error from server (NotFound): configmaps test-config not foundprune: true机制生效了——ArgoCD发现这个ConfigMap不在Git定义中直接在集群里把它删了。五、结论ArgoCD是集群里的强迫症管家经过这番折腾我得出了明确的结论ArgoCD运行在Kubernetes集群内部它维护的目标是集群里正在运行的Pod、Service、ConfigMap等实际资源而不是Git仓库里的YAML文件。把Git和ArgoCD的关系比作蓝图和施工队再合适不过角色载体位置作用蓝图Git仓库YAML文件GitHub/GitLab定义应该是什么样施工队ArgoCDPodK8s集群内部让集群变成蓝图的样子工地Kubernetes集群云端或本地服务器资源真正运行的地方Git定义理想状态ArgoCD在集群里不断纠偏两者组成闭环。六、完整的GitOps工作流附实操代码6.1 你的Application定义文件yamlapiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: camp-prod namespace: argocd spec: source: repoURL: https://github.com/xxx/kubernetes-microservices.git targetRevision: main path: helm/camp helm: valueFiles: - values.yaml # 基础变量 - ../../environments/values-prod.yaml # 生产覆盖 destination: server: https://kubernetes.default.svc namespace: camp-prod syncPolicy: automated: prune: true # 自动删除Git中没有的资源 selfHeal: true # 自动纠正集群与Git的差异6.2 状态定义在Git的哪个文件根据你的Application配置最终状态由两个文件叠加决定基础helm/camp/values.yaml覆盖优先级更高environments/values-prod.yaml所以你要改生产环境配置就去改environments/values-prod.yaml。6.3 修改配置并验证完整闭环powershell# 1. 修改Git文件 vim environments/values-prod.yaml # 把 replicaCount: 1 改成 replicaCount: 3 # 2. 提交并推送 git add . git commit -m 将生产环境副本数从1调整为3 git push # 3. 查看ArgoCD自动同步 # 打开浏览器访问 https://localhost:8080 # 观察 Application 从 OutOfSync 变为 Synced # 4. 验证集群已变更 kubectl get pods -n camp-prod | grep camp-dev-backend # 现在有3个Pod了七、踩坑记录给同样在Windows上玩ArgoCD的你坑1Windows下没有sed命令遇到执行sed -i报CommandNotFoundException解决1用PowerShell原生替换powershell(Get-Content -Path 文件路径) -replace 旧内容,新内容 | Set-Content -Path 文件路径解决2装Git for Windows在Git Bash里运行坑2安装ArgoCD时CRD注解过长遇到metadata.annotations: Too long: may not be more than 262144 bytes原因client-side apply把所有YAML内容塞进了annotation解决用server-side apply force-conflictspowershellkubectl apply --server-side --force-conflicts -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml坑3Windows下base64命令也不存在遇到base64 -d报CommandNotFoundException解决用PowerShell的.NET方法解码powershell[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String((kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath{.data.password})))坑4找不到argocd-initial-admin-secret原因新版ArgoCDv2.4密码管理方式变化解决从argocd-secret中提取或重置powershellkubectl -n argocd get secret argocd-secret -o jsonpath{.data.admin\.password} | base64 -d坑5修改路径找不到文件遇到Get-Content : 找不到路径D:\k8sproject\gitops\argocd\application.yaml原因没有进入项目根目录解决cd D:\k8sproject\kubernetes-microservices后再操作八、最终总结记住这三句话就够了序号一句话总结1ArgoCD运行在Kubernetes集群内部不是GitHub Actions里的一个任务2ArgoCD维护的是集群里的实际资源Pod、Service、ConfigMap不是硬盘上的YAML文件3Git是声明理想状态ArgoCD在集群里持续纠偏两者形成闭环附加题理解自愈 修剪的灵魂selfHeal: true有人在集群里乱改ArgoCD立刻改回来prune: true有人在集群里乱建资源ArgoCD立刻删掉两者结合集群Git定义的精确镜像分毫不差这就是GitOps的终极奥义你只管改Git剩下的交给ArgoCD。这篇博客基于我在Windows环境下从零搭建ArgoCD、排坑、验证的全过程写成希望能帮到和我一样在GitOps路上踩坑的同行者。如果觉得有用点个赞再走吧

相关新闻

Unity资源逆向工程完整指南:AssetStudio深度解析与实战应用

Unity资源逆向工程完整指南:AssetStudio深度解析与实战应用

Unity资源逆向工程完整指南:AssetStudio深度解析与实战应用 【免费下载链接】AssetStudio AssetStudio is an independent tool for exploring, extracting and exporting assets. 项目地址: https://gitcode.com/gh_mirrors/ass/AssetStudio AssetStudio是一…

2026/7/28 20:42:45阅读更多 →
JAVA毕业设计-基于 SpringBoot 的前后端分离的高校大学生心理健康互助社区平台 面向大学生的线上心理疏导与交流支持系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)

JAVA毕业设计-基于 SpringBoot 的前后端分离的高校大学生心理健康互助社区平台 面向大学生的线上心理疏导与交流支持系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/28 20:42:45阅读更多 →
AI辅助Python编程入门:从零搭建环境到实战项目开发

AI辅助Python编程入门:从零搭建环境到实战项目开发

很多朋友想学 Python,但面对海量教程和复杂环境配置,往往还没开始就放弃了。传统的学习路径需要自己安装环境、配置 IDE、手动调试,一个简单的语法错误可能就要卡半天。现在,借助 AI 编程助手,学习 Python 的门槛被大幅降低。你可以像拥有一个随时在线的编程导师,它能帮你…

2026/7/28 20:40:45阅读更多 →
Unity DOTS BlobAsset:ECS架构下高性能只读数据共享方案详解

Unity DOTS BlobAsset:ECS架构下高性能只读数据共享方案详解

1. 项目概述:为什么我们需要 BlobAsset?如果你已经跟着 DOTS 系列一路走来,从 Entity 创建到 System 调度,再到 IComponentData 和 IJobEntity,你应该已经感受到了 ECS 架构在性能上的巨大潜力。数据紧密排列&#xff…

2026/7/28 22:07:09阅读更多 →
如何在10分钟内为Honey Select 2安装终极汉化去码补丁:完整新手指南

如何在10分钟内为Honey Select 2安装终极汉化去码补丁:完整新手指南

如何在10分钟内为Honey Select 2安装终极汉化去码补丁:完整新手指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF Patch是专为Honey Selec…

2026/7/28 22:07:09阅读更多 →
WordPress高转化技术栈:2024年性能优化实战指南

WordPress高转化技术栈:2024年性能优化实战指南

1. 项目概述:WordPress高转化技术栈的核心价值在数字营销领域,转化率提升1%可能意味着六位数的收入增长。作为从业12年的WordPress技术顾问,我见证了无数企业因技术栈选择不当而损失潜在客户。2024年的WordPress技术生态已发生质变&#xff0…

2026/7/28 22:07:09阅读更多 →
机械设计经验密码:从图纸细节到工程思维的实战指南

机械设计经验密码:从图纸细节到工程思维的实战指南

1. 这篇文章真正要解决的问题 作为一名机械工程师,你是否曾有过这样的困惑:为什么同样的功能需求,资深工程师画出的图纸就是更简洁、更可靠、更易于加工和装配?为什么自己设计的结构,在评审时总会被指出存在干涉、应力集中或工艺性差的问题?图纸上的每一条线、每一个尺寸…

2026/7/28 22:07:09阅读更多 →
TPIC7710EVM评估板深度解析:从硬件安全到GUI调试的汽车电机驱动实战指南

TPIC7710EVM评估板深度解析:从硬件安全到GUI调试的汽车电机驱动实战指南

1. 项目概述与核心价值 在嵌入式系统,尤其是汽车电子和工业控制这类对可靠性要求极高的领域,直接在一片空白PCB上围绕一颗复杂的专用集成电路(ASIC)进行设计,无异于一场高风险赌博。芯片手册上密密麻麻的寄存器描述、复…

2026/7/28 22:07:09阅读更多 →
halcon 破解 学习 下载安装教程(2022版)

halcon 破解 学习 下载安装教程(2022版)

「101【Halcon22.11】破解版教程」 /~98503Zpjof~:/ 链接:https://pan.quark.cn/s/e9fb995008b81、解压 halcon-22.11.1.0-x64-win64.zip2、双击 som.exe打开网页,关闭弹窗选择 AVALIABLE,显示可安装的软件安装之前,需进行一些设置…

2026/7/28 22:05:08阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →