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
验证方法与判定标准
- 安装验证:
kubectl get pods -n argocd输出中所有Pod状态为Running或Completed,且无CrashLoopBackOff。 - 密码初始化验证:使用新密码执行
argocd login返回logged in successfully;使用旧密码登录返回认证失败。 - 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。