You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地多Kubernetes集群中ArgoCD跨集群部署应用失败求助

ArgoCD跨集群部署问题解决方案

场景一:ArgoCD部署在Docker Desktop,向Minikube集群部署应用

问题1:argocd cluster add minikube连接拒绝+403错误

直接给匿名用户集群管理员权限是不安全且无效的,正确做法是在Minikube集群创建专用ServiceAccount供ArgoCD使用:

  1. 在Minikube集群执行以下命令:
    # 创建专用ServiceAccount
    kubectl create sa argocd-manager -n kube-system
    # 绑定集群管理员权限
    kubectl create clusterrolebinding argocd-manager-role --clusterrole=cluster-admin --serviceaccount=kube-system:argocd-manager
    # 获取ServiceAccount的token
    kubectl get secret $(kubectl get sa argocd-manager -n kube-system -o jsonpath='{.secrets[0].name}') -n kube-system -o jsonpath='{.data.token}' | base64 -d
    # 获取Minikube API Server地址
    kubectl config view -o jsonpath='{.clusters[?(@.name=="minikube")].cluster.server}'
    # 获取Minikube集群CA证书并保存到文件
    kubectl config view -o jsonpath='{.clusters[?(@.name=="minikube")].cluster.certificate-authority-data}' | base64 -d > minikube-ca.crt
    
  2. 在Docker Desktop集群的ArgoCD中,通过手动导入kubeconfig的方式添加集群:
    • 用上述获取的token、API Server地址、CA证书生成专属kubeconfig文件
    • 执行argocd cluster add --kubeconfig=./minikube-kubeconfig.yaml minikube
  3. 检查网络连通性:确保Docker Desktop集群的Pod能访问Minikube的API Server地址,可在Docker Desktop的任意Pod中执行curl <minikube-api-server-address>测试。

问题2:同集群部署出现repo-server DNS解析失败

这是Docker Desktop集群的CoreDNS服务异常导致的,修复步骤:

  1. 检查CoreDNS Pod状态:
    kubectl get pods -n kube-system -l k8s-app=kube-dns
    
  2. 重启CoreDNS部署:
    kubectl rollout restart deployment coredns -n kube-system
    
  3. 验证ArgoCD repo-server服务的可访问性:
    kubectl get svc argocd-repo-server -n argocd
    # 在集群内临时Pod测试DNS解析
    kubectl run -it --rm --image=busybox dns-test -- nslookup argocd-repo-server.argocd.svc.cluster.local
    

场景二:ArgoCD部署在Minikube,向Docker Desktop集群部署应用

资源找不到错误(ConfigMap、AtlasMigration)

  1. ConfigMap找不到:

    • 核对应用清单中的ConfigMap名称、所属命名空间是否正确,先在Docker Desktop集群手动创建对应命名空间(如果未存在):
      kubectl create namespace <应用命名空间> --context=docker-desktop
      
    • 确认ArgoCD应用配置中,目标集群、目标命名空间参数无误。
  2. AtlasMigration资源找不到:
    Atlas的CRD(自定义资源定义)和控制器必须安装在目标集群(Docker Desktop),仅在ArgoCD所在的Minikube集群安装无效:

    1. 从Atlas官方仓库下载CRD文件(atlasmigrations.yaml)和控制器部署文件(controller.yaml)
    2. 在Docker Desktop集群执行安装命令:
      kubectl apply -f ./atlasmigrations.yaml --context=docker-desktop
      kubectl apply -f ./controller.yaml --context=docker-desktop
      
    3. 验证CRD是否成功安装:
      kubectl get crd atlasmigrations.db.atlasgo.io --context=docker-desktop
      

内容的提问来源于stack exchange,提问作者Amit Limbasiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:30:37