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

AWS EKS集群kubectl logs授权错误排查求助

问题分析

删除EKS集群的创建角色后,控制平面的kube-apiserver无法通过kube-apiserver-kubelet-client用户访问kubelet的nodes/proxy接口,而查看Pod日志依赖这个接口获取节点上的日志数据,因此触发授权错误。

修复步骤

1. 恢复EKS集群关联的IAM角色

  • 重新创建与原角色同名的IAM角色,信任策略配置为允许EKS服务扮演该角色:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "eks.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
  • 为该角色附加AmazonEKSClusterPolicy权限(你已有的权限列表中包含该策略,确保正确绑定)。
  • 执行命令更新EKS集群的角色关联:
    aws eks update-cluster-config --name <你的集群名称> --role-arn <新创建角色的ARN>
    
    等待集群配置更新完成(可通过aws eks describe-cluster --name <集群名称>查看状态)。

2. 修复RBAC授权规则

创建以下RBAC配置文件,为kube-apiserver-kubelet-client用户授予访问kubelet接口的权限:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: system:kube-apiserver-kubelet-api-access
rules:
- apiGroups: [""]
  resources: ["nodes/proxy", "nodes/log", "nodes/stats", "nodes/spec", "nodes/metrics"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: system:kube-apiserver-kubelet-api-access
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:kube-apiserver-kubelet-api-access
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: kube-apiserver-kubelet-client

执行命令应用配置:

kubectl apply -f <文件名>.yaml

3. 验证修复

执行日志查看命令测试:

kubectl logs <Pod名称> -n <命名空间>

同时检查RBAC绑定状态:

kubectl get clusterrolebinding system:kube-apiserver-kubelet-api-access

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:24:52