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

执行helm upgrade -i报Kubernetes cluster unreachable错误如何解决

问题根因

出现Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version": dial tcp 127.0.0.1:8080: connect: connection refused报错的核心原因是:执行Helm部署命令时,程序没有读取到有效的目标EKS集群访问配置,Kubernetes客户端默认回退尝试连接本地127.0.0.1:8080端口,自然会被拒绝。

排查解决步骤
  • 先验证基础集群连通性
    直接执行kubectl get nodes,如果该命令同样返回连接错误,说明你之前的kubeconfig配置完全无效:
    • 你之前配置的/etc/rancher/k3s/k3s.yaml是本地k3s集群的配置文件,和你要操作的Amazon EKS集群无关,二者不能混用
    • 执行kubectl config view --raw >~/.kube/config导出配置时,前提是当前kubectl已经加载了正确的EKS集群配置,否则导出的只是空的默认配置,没有任何实际集群信息
    • 正确生成EKS集群访问配置的方式:先确保本地已经配置好可用的AWS凭证,再执行aws eks update-kubeconfig --name <替换为你的EKS集群名称> --region <替换为集群所在AWS区域>,执行完成后重新跑kubectl get nodes,能正常返回集群节点列表才说明配置生效。
  • 修正Helm命令的配置加载逻辑
    你执行helm repo update时显式指定了--kubeconfig ./cluster_config参数,但后续执行helm upgrade部署命令时没有加该参数,Helm默认只会读取~/.kube/config或KUBECONFIG环境变量指向的配置:
    • 如果你的集群配置确实存放在当前目录的./cluster_config文件下,执行部署命令前先跑export KUBECONFIG=./cluster_config,再执行helm ls -n kube-system验证,能正常列出该命名空间下的Helm应用再进行部署
    • 也可以直接在helm upgrade命令末尾追加--kubeconfig ./cluster_config参数,显式指定配置文件路径,避免环境变量或默认配置路径的干扰。
  • 修正部署命令里的参数错误
    你写的镜像仓库地址中包含$1占位符,这是Shell脚本里的位置参数,如果你直接在终端手动执行命令,$1会被解析为空值,导致镜像地址无效,就算连通集群也会出现镜像拉取失败。需要把$1替换为EKS集群对应的AWS区域编码,比如us-east-1、cn-northwest-1这类和你集群实际区域匹配的值。
  • 前置资源校验
    你在参数里设置了controller.serviceAccount.create=false,需要提前确认kube-system命名空间下已经存在名为efs-csi-controller-sa的服务账号,并且该账号已经绑定了允许访问EFS服务的IAM角色,否则部署完成后控制器会因为权限不足无法正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:27:21