ArgoCD部署过程中误删argocd-server服务如何恢复
ArgoCD argocd-server组件误删恢复方案
argocd-server是ArgoCD提供Web UI、API服务、CLI对接入口的核心组件,仅删除该组件不会丢失ArgoCD存储的应用、配置数据,按对应部署方式选以下方案恢复即可,不需要提前找本地留存的旧服务配置。
方案1:原生Manifest部署场景恢复
- 第一步先确认集群当前运行的ArgoCD版本,避免版本不一致导致异常:
kubectl get pods -n argocd -l app.kubernetes.io/part-of=argocd -o jsonpath='{.items[0].metadata.labels.app\.kubernetes\.io/version}'
- 拿到版本号后,获取同版本的官方ArgoCD安装清单包,解压后找到以下几个和argocd-server相关的资源文件,在argocd命名空间下apply即可,注意版本必须完全匹配,避免出现API版本不兼容、功能异常的问题:
server-serviceaccount.yamlserver-role.yamlserver-rolebinding.yamlserver-deployment.yamlserver-service.yaml
- 执行apply后等待1-2分钟,执行以下命令校验状态:
# 校验server pod运行状态 kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server # 校验server服务存在 kubectl get svc -n argocd argocd-server
所有资源状态正常后即可正常访问ArgoCD UI、使用CLI对接,原有账号、应用配置全部保留。
方案2:Helm部署场景恢复
如果当初是通过Helm Chart部署的ArgoCD,不需要单独找资源文件,直接执行Helm升级对齐资源即可:
- 先查询当前argocd命名空间下的Helm release信息,确认release名称和chart版本:
helm list -n argocd
- 使用和当前部署完全一致版本的ArgoCD Helm Chart,执行upgrade操作,会自动补全所有被删除的argocd-server相关资源,不会覆盖现有自定义配置:
helm upgrade <你的argocd release名称> <本地存储的对应版本ArgoCD chart路径> -n argocd
如果部署时自定义过values配置,加上-f <你的自定义values文件路径>参数即可。
方案3:自定义修改过server配置的特殊场景恢复
如果你之前对argocd-server做过自定义调整(比如修改启动参数、调整Service为LoadBalancer/NodePort、挂载自定义SSL证书),可以参考集群内其他ArgoCD组件的配置手动重建资源,注意几个核心规则即可:
- argocd-server使用的镜像版本必须和集群内其他ArgoCD组件(比如argocd-repo-server、argocd-application-controller)的镜像tag完全一致
- 资源标签要和其他ArgoCD组件对齐,必须包含
app.kubernetes.io/part-of: argocd、app.kubernetes.io/name: argocd-server标签,否则其他组件的网络策略可能会拦截server的请求 - Service默认需要暴露两个端口,分别映射到pod的8080(HTTP)、8083(HTTPS)端口
- RBAC权限规则直接复用同版本官方模板的配置即可,权限不足会导致API调用失败、UI无法加载数据
注意:恢复过程中不要操作argocd-redis、argocd-application-controller、argocd-repo-server组件,也不要删除对应绑定的PVC,否则会导致ArgoCD存储的所有配置、应用信息丢失。仅删除argocd-server的场景下,按上述方案恢复后无任何数据损失。
内容的提问来源于stack exchange,提问作者Kami
相关产品推荐
相关产品推荐

