使用官方 Manifest 安装 Argo CD
本篇以官方发布 Manifest 为主线。生产环境不要直接引用 stable 或未审查的在线 YAML;应固定版本、先在测试集群验证,并将下载后的清单纳入平台 Git 仓库审阅。
1. 安装前检查
安装账号需要在目标集群创建 Namespace、CRD、Deployment、Service、ClusterRole 与 ClusterRoleBinding。Argo CD 本身不等于集群管理员:后续应通过 AppProject 与目标集群 RBAC 缩小应用同步权限。
# 确认当前 context 指向预期的管理集群
kubectl config current-context
# 检查集群与节点可用性
kubectl get nodes
# 创建安装 Namespace;已存在时不会报错
kubectl create namespace argocd --dry-run=client -o yaml | kubectl apply -f -
2. 固定版本并应用官方清单
先在 Argo CD Releases 选择经过兼容性验证的版本。以下变量必须替换为团队批准的版本,不能使用浮动分支。
# 示例:将版本固定在团队批准的 Argo CD Release
export ARGOCD_VERSION=<approved-version>
# 下载官方安装清单到受控目录,供代码审阅与后续复现使用
curl -fsSL \
"https://raw.githubusercontent.com/argoproj/argo-cd/${ARGOCD_VERSION}/manifests/install.yaml" \
-o argocd-install.yaml
应用前先查看变更。升级时尤其要关注 CRD、RBAC 和镜像版本,不要在生产集群直接跳过审阅。
# 预览将创建或修改的资源
kubectl diff -n argocd -f argocd-install.yaml || true
# 安装或升级控制面
kubectl apply -n argocd -f argocd-install.yaml
3. 等待控制面就绪
# 观察所有核心组件;Pending 或 CrashLoopBackOff 时先停止后续配置
kubectl get pods -n argocd -w
# 核心 Deployment 就绪后再继续
kubectl rollout status deployment/argocd-server -n argocd --timeout=5m
kubectl rollout status deployment/argocd-repo-server -n argocd --timeout=5m
kubectl rollout status statefulset/argocd-application-controller -n argocd --timeout=5m
不同版本的控制器工作负载类型可能不同;若 rollout status 找不到对象,使用 kubectl get deploy,statefulset -n argocd 确认实际名称。
4. 初始访问与管理员密码
初始 admin 密码保存在 Secret 中。仅用于首次进入后配置 SSO 或创建受限运维账号;不要把密码打印到共享终端、CI 日志或工单。
# 临时端口转发,仅供本机初始化;终止进程后访问即关闭
kubectl port-forward service/argocd-server -n argocd 8080:443
另开终端获取初始密码,并立即使用密码管理器保存:
# 从 initial-admin-secret 读取一次性初始密码
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath='{.data.password}' | base64 -d
echo
生产入口应通过 Ingress、Gateway 或受控 LoadBalancer 暴露,并启用 TLS、SSO、网络访问限制和审计。完成身份体系迁移后,删除初始密码 Secret:
# 确认已有可用的 SSO 管理员或本地受控账号后再删除
kubectl -n argocd delete secret argocd-initial-admin-secret
5. 安装验证
# 检查 Argo CD API、仓库服务与控制器是否存在 Ready 副本
kubectl get deploy,statefulset -n argocd
# 检查安装清单中的 CRD 是否已注册
kubectl get crd | grep 'argoproj.io'