1. 安装与初始化Argo CD

任务说明

在可用的Kubernetes集群上安装Argo CD,完成管理员密码初始化,并验证argocd CLI可以正常登录和操作。本案例覆盖从零到CLI可用的完整闭环。

环境要求

  • Kubernetes集群(v1.20+),已配置kubectl并可访问default命名空间
  • 集群有足够资源运行Argo CD(建议至少2核CPU、4GiB内存)
  • 本机可访问集群API Server

安装Argo CD

使用官方manifest安装到独立命名空间argocd,避免与业务资源互相干扰:

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

等待所有Pod进入Running状态(通常需要1-2分钟):

kubectl get pods -n argocd -w

初始化管理员密码

Argo CD初始管理员密码为随机生成,存储在argocd-initial-admin-secret中。获取并解码:

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

使用该密码通过端口转发登录,然后立即修改为自定义密码:

# 终端1:启动端口转发
kubectl port-forward svc/argocd-server -n argocd 8080:443

# 终端2:登录并修改密码
argocd login localhost:8080 --username admin --password <初始密码> --insecure
argocd account update-password --current-password <初始密码> --new-password <新密码>

安装并验证CLI

下载与服务器版本匹配的CLI(以v2.9.x为例,实际版本以stable分支为准):

# Linux/macOS
curl -sSL -o argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod +x argocd
sudo mv argocd /usr/local/bin/

# 验证版本
argocd version --client

使用新密码重新登录并验证CLI可用:

argocd login localhost:8080 --username admin --password <新密码> --insecure
argocd account get-user-info

验证方法与判定标准

  1. 安装验证:kubectl get pods -n argocd 输出中所有Pod状态为Running或Completed,且无CrashLoopBackOff。
  2. 密码初始化验证:使用新密码执行argocd login返回logged in successfully;使用旧密码登录返回认证失败。
  3. CLI可用性验证:argocd account get-user-info能显示当前用户为admin及权限信息,无连接错误。

常见问题

  • 端口转发失败:确认argocd-server服务已创建(kubectl get svc -n argocd),且本地8080端口未被占用。
  • 初始密码secret不存在:较新版本Argo CD可能已移除该secret,改用kubectl -n argocd get secret argocd-secret -o jsonpath="{.data.admin.password}" | base64 -d获取bcrypt哈希,需用htpasswd验证或直接重置。
  • CLI版本不匹配:若登录报rpc error,使用argocd version --client查看客户端版本,并从Argo CD服务器argocd-server的Pod日志中确认服务端版本,下载对应版本CLI。