ArgoCD容器持续交付配置:零基础GitOps实战指南

开始前你要准备什么

动手之前先确认三样东西:一个正常运行的Kubernetes集群(比如Minikube或云上的托管集群)、kubectl命令行工具已配置好连接、以及一个存放Kubernetes清单文件的Git仓库(推荐GitHub或GitLab)。
如果你对K8s还不太熟,跟着步骤来也够用,因为ArgoCD会帮你管理大部分细节。

在集群上安装ArgoCD

安装过程很简单,用一条命令就能把ArgoCD部署到集群中。
在终端里执行:

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

等几分钟后检查Pod状态,确保全部Running:

kubectl get pods -n argocd

接着暴露服务以便访问UI。
生产环境建议用Ingress,这里为了方便用端口转发:

kubectl port-forward svc/argocd-server -n argocd 8080:443

然后打开浏览器访问 https://localhost:8080
默认管理员账号是 admin,密码通过下面命令获取:

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

登录后建议立刻修改密码。

创建你的第一个GitOps应用

把应用代码和K8s清单放在同一个Git仓库里,比如一个简单的Nginx部署。
在ArgoCD UI里点“+ NEW APP”,填入:

  • Application Name:my-nginx
  • Project:default
  • Sync Policy:Automatic(自动同步)
  • Source Repository URL:你的Git仓库地址
  • Path:存放清单文件的目录(比如 ./k8s
  • Destination Cluster URL:https://kubernetes.default.svc(当前集群)
  • Namespace:你要部署的目标命名空间(比如 default

保存后点击“SYNC”,ArgoCD会自动从Git仓库拉取清单并应用到集群。
如果Git里没有清单文件,可以先手动创建一个:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: nginx

将这个YAML文件提交到Git仓库的 k8s/ 目录下,ArgoCD检测到仓库变化后会自动同步(如果设置了自动同步策略)。

同步与验证:确保配置生效

同步成功后,在ArgoCD UI上可以看到Application状态变为“Synced”和“Healthy”。
你也可以用kubectl确认Pod是否启动:

kubectl get pods -n default | grep nginx

如果Pod没有如预期运行,先检查同步日志:点进Application -> APP DETAILS -> EVENTS/LOCS。
常见原因是清单文件里引用的镜像不存在或资源冲突,根据错误提示改仓库文件,再手动触发SYNC。

为了测试GitOps实效,可以改一下副本数(比如replicas从2改为3),提交到Git仓库,几秒后ArgoCD自动更新Pod数量。
验证:

kubectl get deployment nginx -o jsonpath='{.spec.replicas}'

输出应该变成3。

避坑与高频问题解答

问题1:连接Git仓库超时或认证失败
确保仓库是公开的,或者使用SSH Key / Token。在Settings -> Repositories里配置连接凭据。

问题2:应用一直处于OutOfSync状态
检查集群中是否有手动修改过资源(比如用kubectl edit)。GitOps要求所有变更都通过Git仓库驱动,手动修改会导致偏离。建议将同步策略从“Automatic”临时改为“Manual”,然后对比差异并手动同步一次,再改回自动。

问题3:ArgoCD服务无法访问
如果是端口转发方式,确认本地端口未被占用;生产环境推荐用Ingress并配置TLS。

避坑提醒: 不要在非目标集群上执行安装命令;
修改仓库文件后一定要git push,ArgoCD懒加载默认每3分钟检查一次仓库,也可以手动刷新或缩短轮训间隔。

如果你正在处理ArgoCD容器持续交付配置,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
SkyWalking链路追踪部署
下一篇
Wavefront云监控工具使用教程:从零搭建服务器监控
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意