
xelonag/argocd-image-updater-demo本文档提供使用ArgoCD在Kubernetes集群中部署应用和服务的详细指南,包括ArgoCD的安装配置、应用部署方法、Git仓库结构设计及实际部署示例,帮助用户通过GitOps方式管理Kubernetes资源。
适用于需要通过GitOps理念管理Kubernetes应用的团队,尤其适合多集群管理、多环境部署(开发/测试/生产)及需要严格版本控制的场景。
基于官方文档简化步骤:
bashkubectl create namespace argocd
bashkubectl apply -n argocd -f [***]
bashkubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d
bashkubectl port-forward svc/argocd-server ***:443 -n argocd
访问 https://localhost:*** 即可打开Web界面
admin和步骤3获取的初始密码登录额外提示:如需公开访问,可配置Ingress或修改服务类型为Load***,注意配置基础安全策略
登录ArgoCD Web界面
(私有仓库需配置)添加仓库
bitbucket.org:your-org/argocd-demo.git)并添加SSH私钥创建新应用
argo-demo-app-prod)、项目(默认default)、同步策略(默认手动)、同步选项(勾选Auto-Create Namespace)cluster/demo-cluster/demo-app-prod/ArgoDemoApp)[***],指向Kubernetes API)、目标命名空间(如demo-app-prod)ArgoCD应用是Kubernetes CRD,可通过YAML文件定义并部署:
yamlapiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: argo-demo-app-prod # 应用名称 namespace: argocd # ArgoCD命名空间 spec: project: default # 所属项目 source: repoURL: 'bitbucket.org:xelonvdc/argocd-demo.git' # Git仓库URL path: cluster/demo-cluster/demo-app-prod/ArgoDemoApp # 应用路径 targetRevision: HEAD # 目标分支/标签 destination: server: '[***] # 目标集群API地址 namespace: demo-app-prod # 目标命名空间 syncPolicy: syncOptions: - CreateNamespace=true # 自动创建命名空间
通过kubectl apply -f <manifest-file.yaml>部署应用
推荐为ArgoCD配置创建独立仓库,多集群/多客户场景可拆分仓库。建议结构:
<仓库根目录> └── cluster # 集群目录 └── <集群名称> # 集群标识(如demo-cluster) └── <命名空间> # 命名空间(如demo-app-prod) └── <应用名称> # 应用标识(如ArgoDemoApp) └── <Manifest文件> # Kubernetes资源清单
该结构扩展性强,适合复杂架构管理
准备Manifest文件(如whoami.yaml),放置于上述仓库结构对应路径(如cluster/demo-cluster/demo-app-prod/ArgoDemoApp/)
推送变更至Git仓库
同步应用(手动同步场景):
修改Manifest并推送后,通过应用概览(Applications > 点击应用)可查看待变更资源,支持选择性同步(如单独更新Service),适合紧急修复场景,但建议遵循GitOps理念保持完整同步
提示:应用概览页面会显示资源变更状态,例如修改Load***端口后,可在同步前预览变更内容



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务