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

使用kubectl访问EKS API Server时遇登录凭证错误求助

排查步骤与解决方案

1. 确认Token完整性

你提供的kubeconfig里的token明显是截断状态(结尾为eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJu),完整的JWT Token必须是三段式结构,由两个.分隔。截断的Token无法通过API Server的认证,这是最直接的问题。

2. 验证ServiceAccount的ClusterRoleBinding配置

先检查是否正确创建了绑定cluster-admin角色的ClusterRoleBinding:

# 替换<你的ServiceAccount名称>为实际账号名
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: sa-cluster-admin-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: <你的ServiceAccount名称>
  namespace: default

执行命令确认绑定存在:

kubectl get clusterrolebinding sa-cluster-admin-binding

3. 获取ServiceAccount的有效Token

从Kubernetes 1.24版本开始,默认不再为ServiceAccount自动创建含Token的Secret,需通过以下方式获取有效Token:

方式1:生成短期Token(推荐,更安全)

kubectl create token <你的ServiceAccount名称> --namespace default --duration 24h

直接将输出的完整Token复制到kubeconfig的token字段中。

方式2:创建长期Token的Secret

若需要长期Token,创建关联ServiceAccount的Secret:

apiVersion: v1
kind: Secret
metadata:
  name: sa-long-term-token
  annotations:
    kubernetes.io/service-account.name: <你的ServiceAccount名称>
type: kubernetes.io/service-account-token

应用配置后获取完整Token:

kubectl get secret sa-long-term-token -o jsonpath='{.data.token}' | base64 -d

4. 更新kubeconfig并验证

将获取到的完整Token替换到kubeconfig的user.token字段,执行以下命令验证权限:

kubectl get nodes

若能正常返回节点信息,说明认证与权限配置生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:06:52