Myluzh Blog

GitOps:ArgoCD 部署与使用

发布时间: 2025-3-3 文章作者: myluzh 分类名称: CI/CD 朗读文章


0x01 前言
Argo CD仓库地址:https://github.com/argoproj/argo-cd/releases
什么是Argo CD?:
Argo CD 是一个基于 GitOps 的 Kubernetes 持续交付工具,通过自动化同步 Git 仓库中的配置到 Kubernetes 集群,实现高效、可靠的应用部署和管理。


GitOps 的核心原则:

1、声明式配置:Kubernetes 的部署配置(如 deployment.yaml)以声明式的方式存储在 Git 仓库中。ArgoCD 通过读取这些配置文件来同步 Kubernetes 集群的状态。
2、Git 作为唯一事实来源(Single Source of Truth):所有的 Kubernetes 资源配置都存储在 Git 仓库中,Git 仓库是唯一的事实来源。Jenkins 在构建镜像后,会更新 Git 仓库中的镜像标签,确保 Git 仓库始终反映最新的期望状态。
3、自动化同步:ArgoCD 会持续监控 Git 仓库的变化,并在检测到更新时自动同步 Kubernetes 集群的状态。这种自动化确保了集群状态与 Git 仓库中的声明式配置保持一致。
4、可审计性和可追溯性:所有的变更都通过 Git 提交记录进行管理,可以轻松追踪谁在什么时候做了什么更改。如果出现问题,可以通过 Git 历史快速回滚到之前的版本。



0x02 ArgoCD部署
# 部署ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.14.3/manifests/install.yaml
# 修改成nodeport供外部访问
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
# 获取admin初始密码
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

0x03 强制触发同步
ArgoCD 自动同步默认是3分钟,如果觉得自动同步太慢了,可以直接调api强制更新
// 使用 ArgoCD CLI 触发同步
sh 'argocd app sync my-app'
// 或者使用 curl 调用 ArgoCD API
sh 'curl -X POST -H "Authorization: Bearer ${ARGOCD_TOKEN}" https://argocd.example.com/api/v1/applications/my-app/sync'



参考链接:
ArgoCD 简明教程 https://cloud.tencent.com/developer/article/1925118
GitOps 面试题合集:轻松搞定面试 https://mp.weixin.qq.com/s/kNexiWoR0fVYatCg7kweEg

标签: k8s argocd cd gitops

发表评论