必须先部署ArgoCD控制平面:创建argocd命名空间、应用官方稳定版清单、等待Pod就绪、获取初始密码、暴露访问入口(如port-forward或Ingress),再配置首个GitOps应用,完成从Git拉取到集群同步的全链路闭环。

要在 Kubernetes 集群中启用 GitOps 持续部署自动化,必须先部署 ArgoCD 控制平面——它不是简单运行几个 Pod 就能工作的工具,而是需要正确初始化命名空间、加载 CRD、启动控制器并暴露访问入口的一整套声明式系统;缺少任一环节,后续应用同步将直接失败。
安装 ArgoCD 控制平面
这一步操作起来很简单,直接用 kubectl 应用官方稳定版清单即可。
执行:kubectl create namespace argocd → kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
注意:该清单默认启用所有组件(包括 ApplicationSet、Notifications),若集群资源紧张,需提前删减对应 YAML 片段再应用;否则可能因 OOMKilled 导致 argocd-repo-server 启动失败,进而阻塞所有后续同步。
等待全部 Pod 进入 Running 状态:kubectl get pods -n argocd -w。重点关注 argocd-repo-server 和 argocd-application-controller 两个 Pod 的 READY 状态是否为 1/1。
获取初始管理员凭证
ArgoCD 安装后会自动生成一个名为 argocd-initial-admin-secret 的 Secret,其中 password 字段是 base64 编码的初始密码。
执行:kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
输出即为 admin 用户的初始密码,请立即复制保存,该 Secret 在首次登录后会被自动删除。若跳过此步直接尝试登录 UI,将无法通过认证。
暴露 ArgoCD Server 访问方式
方法一:本地快速验证(仅限测试环境)
执行:kubectl port-forward svc/argocd-server -n argocd 8080:443
浏览器打开 https://localhost:8080,用户名填 admin,密码用上一步获取的初始密码。
方法二:生产环境推荐(Ingress + TLS)
创建 ingress 资源,host 字段必须与你申请的 TLS 证书域名完全一致;若使用自签名证书,需在 argocd cli 登录时加 --insecure 参数,否则 CLI 会拒绝连接。
方法三:NodePort(临时调试用)
编辑 argocd-server Service,将 type 改为 NodePort,并记录分配的端口号(通常为 3xxxx),通过 https://<node-ip>:<nodeport> 访问。
配置首个 GitOps 应用
第一步:准备 Git 仓库
确保仓库中已存在一份有效的 Kubernetes 清单(如 deployment.yaml + service.yaml),且路径结构清晰(例如根目录下直接放 YAML,或统一放在 manifests/ 子目录)。
第二步:在 ArgoCD UI 中创建 Application
点击 “+ NEW APP” → 填写 Name(任意)、Project(默认 default)、Sync Policy(建议选 Automatic)、Repository URL(HTTPS 或 SSH 地址)、Revision(分支名,如 main)、Path(YAML 所在路径,如 ./ 或 ./manifests/)、Cluster URL(https://kubernetes.default.svc)、Namespace(目标命名空间,如 default)。
第三步:触发首次同步
点击 “CREATE”,页面跳转后点 “SYNC” → “SYNCHRONIZE” → 等待状态变为 Healthy & Synced。
此时 ArgoCD 已完成从 Git 拉取→渲染→比对→应用的全链路闭环,Git 仓库即成为该应用的唯一事实来源。


















