ArgoCD 密码重置:如何恢复遗忘的 admin 登录凭证
在日常运维中,如果遗忘了 ArgoCD Web 面板中 admin 账户的自定义登录密码,将导致无法通过图形界面管理应用。
ArgoCD 将 admin 账户的密码哈希值存储在名为 argocd-secret 的 Kubernetes Secret 资源中。当我们在 UI 界面修改密码时,系统实际上是在更新该 Secret 内部的 admin.password 字段。如果该字段被清空或移除,ArgoCD 将自动回退,允许使用系统在初始化时生成的默认密码进行登录。
基于这一底层逻辑,我们可以通过命令行强制重置密码状态。
密码恢复流程
Section titled “密码恢复流程”请确保你的终端已连接到目标 K3s 集群,且具备操作 argocd 命名空间的高级权限。
步骤 1:移除自定义密码字段
Section titled “步骤 1:移除自定义密码字段”使用 kubectl patch 命令,强行从存储配置的 Secret 中剔除自定义密码记录。这相当于清除了系统中后续添加的身份验证覆写规则。
kubectl patch secret argocd-secret -n argocd --type=json -p='[{"op": "remove", "path": "/data/admin.password"}]'执行成功后,终端应返回 secret/argocd-secret patched。
步骤 2:重启 API Server 服务
Section titled “步骤 2:重启 API Server 服务”密码字段移除后,需要重启 ArgoCD 的前端 Server 组件,使其强制重新读取底层的 Secret 状态。
kubectl rollout restart deploy argocd-server -n argocd等待几秒钟,确保新的 Pod 成功启动并接管流量。
步骤 3:提取系统初始密码
Section titled “步骤 3:提取系统初始密码”此时,ArgoCD 已经回退到出厂安全状态。我们需要从专门存储初始密码的 Secret (argocd-initial-admin-secret) 中提取密码的 Base64 原文并进行解码。
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo请复制终端输出的这串随机字符串,这是你目前的唯一登录凭证。
步骤 4:登录并设置新密码
Section titled “步骤 4:登录并设置新密码”- 浏览器访问你的 ArgoCD 面板。
- 账号输入
admin,密码粘贴刚刚提取的初始字符串。 - 登录成功后,导航至页面左侧的 User Info 选项卡。
- 点击 Update Password,输入当前密码(初始密码)并设定一个新的、已妥善记录的自定义密码。