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

配置上下文后仍无法连接AWS Kubernetes集群求助

AWS EKS kubectl连接localhost:8080被拒绝的排查方案

已在AWS上部署Kubernetes集群,完成集群上下文配置后执行kubectl命令仍报错:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

已确认kubectl、aws-iam-authenticator已安装,~/.kube/config文件存在,且aws sts get-caller-identity验证AWS CLI连接正常,配置步骤如下:

export CLUSTER=abcd.com
export API_ENDPOINT=abcd.com
export TEAM_NAMESPACE=abcd

kubectl config set-cluster $CLUSTER --server=$API_ENDPOINT

kubectl config set-credentials $CLUSTER \
  --exec-api-version="client.authentication.k8s.io/v1beta1" \
  --exec-command="aws-iam-authenticator" \
  --exec-arg="token" \
  --exec-arg="-i" \
  --exec-arg="$CLUSTER"

kubectl config set-context $CLUSTER --cluster=$CLUSTER --namespace=$TEAM_NAMESPACE --user=$CLUSTER
kubectl config use-context $CLUSTER

排查与修复步骤

  • 验证集群API端点配置
    执行kubectl config view --minify查看当前生效的上下文配置,重点检查clusters[].cluster.server字段。EKS集群的API端点应为https://<集群ID>.eks.<区域>.amazonaws.com格式,若配置为自定义域名abcd.com,需确保该域名已正确解析到EKS端点且能正常访问。若端点错误,通过以下命令获取并更新:

    # 获取正确的EKS API端点
    aws eks describe-cluster --name <实际集群名称> --query "cluster.endpoint" --output text
    # 更新集群server地址
    kubectl config set-cluster $CLUSTER --server=<获取到的端点>
    
  • 修正EKS集群名称配置
    EKS集群名称仅允许使用字母、数字和连字符,不能包含.。若你的$CLUSTER变量为abcd.com,需修正为合法的集群名称,再重新配置凭证和上下文:

    export CLUSTER=abcd # 替换为实际EKS集群名称
    # 重新配置凭证
    kubectl config set-credentials $CLUSTER \
      --exec-api-version="client.authentication.k8s.io/v1beta1" \
      --exec-command="aws-iam-authenticator" \
      --exec-arg="token" \
      --exec-arg="-i" \
      --exec-arg="$CLUSTER"
    # 更新上下文
    kubectl config set-context $CLUSTER --cluster=$CLUSTER --namespace=$TEAM_NAMESPACE --user=$CLUSTER
    
  • 检查kubeconfig文件权限
    kubectl要求kubeconfig文件权限为600,否则会忽略该文件,执行以下命令修正:

    chmod 600 ~/.kube/config
    
  • 测试aws-iam-authenticator认证
    直接执行命令验证能否获取认证token:

    aws-iam-authenticator token -i <实际EKS集群名称>
    

    若返回包含token字段的JSON,说明认证正常;若报错,检查AWS凭证是否具备EKS集群的访问权限,或集群名称是否正确。

  • 确认当前上下文生效
    执行kubectl config current-context检查当前使用的上下文是否为你配置的集群,若不是,重新切换:

    kubectl config use-context $CLUSTER
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:50:48