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

如何将第二个Minikube集群(dev)添加到部署在prod的Argo CD?

无法将Minikube dev集群添加到prod集群上的Argo CD

我已创建dev和prod两个Minikube集群,计划基于Argo CD搭建多集群部署方案,但尝试将dev集群添加至部署在prod集群的Argo CD时失败。

操作流程

启动集群

# 启动dev集群
minikube start -p dev

# 启动prod集群并切换到该集群上下文
minikube start -p prod
minikube profile prod

在prod集群安装Argo CD

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

暴露Argo CD服务并登录

kubectl port-forward svc/argocd-server -n argocd 8081:443
argocd login localhost --username admin

添加dev集群时的错误

执行命令 argocd cluster add dev --name dev 后返回以下错误:

$ argocd cluster add dev --name dev
WARNING: This will create a service account `argocd-manager` on the cluster referenced by context `dev` with full cluster level privileges. Do you want to continue [y/N]? y
INFO[0001] ServiceAccount "argocd-manager" already exists in namespace "kube-system" 
INFO[0001] ClusterRole "argocd-manager-role" updated    
INFO[0001] ClusterRoleBinding "argocd-manager-role-binding" updated 
FATA[0001] rpc error: code = Unknown desc = Get "https://127.0.0.1:55640/version?timeout=32s": dial tcp 127.0.0.1:55640: connect: connection refused

当前kubeconfig片段

clusters:
- cluster:
    certificate-authority: /root/.minikube/ca.crt
    extensions:
    - extension:
        provider: minikube.sigs.k8s.io
        version: v1.27.1
      name: cluster_info
    server: https://127.0.0.1:55640
  name: dev
- cluster:
    certificate-authority: /root/.minikube/ca.crt
    extensions:
    - extension:
        provider: minikube.sigs.k8s.io
        version: v1.27.1
      name: cluster_info
    server: https://127.0.0.1:55409
  name: prod

解决方案

问题根源

Argo CD运行在prod集群的Pod内部,它尝试访问dev集群配置中的https://127.0.0.1:55640地址,但这个本地回环地址在prod集群Pod内部无法映射到你的本地Minikube dev集群,导致连接拒绝。

修复步骤

  1. 获取dev集群的实际IP地址
    切换到dev集群上下文,获取Minikube分配的集群IP:

    minikube profile dev
    minikube ip
    

    记录输出的IP(例如192.168.49.2)。

  2. 更新dev集群的kubeconfig服务器地址
    将kubeconfig中dev集群的server字段从本地回环地址替换为Minikube IP+API端口:

    # 获取dev集群原API端口
    DEV_PORT=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}' | cut -d: -f3)
    # 更新kubeconfig
    kubectl config set-cluster dev --server=https://$(minikube ip -p dev):$DEV_PORT
    
  3. 确保网络可达性
    检查运行Minikube的主机防火墙,允许prod集群所在的Minikube节点访问dev集群的API端口(默认6443或上述获取的DEV_PORT)。

  4. 重新添加dev集群
    再次执行添加命令:

    argocd cluster add dev --name dev
    

备选方案:使用Minikube Tunnel

如果上述方法仍有问题,可通过Minikube Tunnel暴露dev集群的API server到可访问地址:

# 启动后台隧道
minikube tunnel -p dev &
# 获取隧道分配的API server地址并更新kubeconfig
kubectl config set-cluster dev --server=https://$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}' | sed 's/127.0.0.1/localhost/')

之后再重新执行集群添加命令。

内容的提问来源于stack exchange,提问作者Carlos Eduardo Troleis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:53:14