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

为EKS 1.21工作节点配置集群管理员权限后节点组异常求助

问题解决方法

问题根源

将EKS工作节点角色直接加入system:masters组会触发EKS控制台健康检查误判——控制台的节点健康校验逻辑期望节点角色仅映射到system:nodes和system:bootstrappers组,同时存在system:masters会导致校验逻辑判定角色配置异常,进而标记节点组为降级状态。此外,直接给节点赋予system:masters权限存在严重安全风险,不推荐这种做法。

修复步骤

1. 恢复aws-auth ConfigMap

先移除aws-auth ConfigMap中的system:masters组,恢复默认节点角色映射:

data:
  mapRoles: |
    - groups:
      - system:nodes
      - system:bootstrappers
      rolearn: arn:aws:iam::686143527223:role/terraform-eks-worker-node-role
      username: system:node:{{EC2PrivateDNSName}}

执行更新命令:

kubectl apply -f aws-auth.yaml

2. 通过RBAC赋予节点所需权限

若确实需要给工作节点赋予集群管理员级权限,不要直接使用system:masters,而是通过自定义ClusterRoleBinding实现:

方法一:绑定system:nodes组到cluster-admin角色

创建node-cluster-admin-binding.yaml文件:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: node-cluster-admin-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:nodes

执行创建命令:

kubectl apply -f node-cluster-admin-binding.yaml

方法二:绑定特定节点用户名到cluster-admin角色

若仅需给特定节点赋予权限,可针对节点用户名绑定:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: specific-node-cluster-admin-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: system:node:<EC2_PRIVATE_DNS_NAME>

替换<EC2_PRIVATE_DNS_NAME>为目标节点的私有DNS名称,再执行创建命令。

3. 验证节点组状态

完成操作后等待5-10分钟,刷新EKS控制台查看节点组状态,降级状态会自动恢复,同时节点将获得所需的集群权限。

关键说明

  • 禁止将工作节点角色直接加入system:masters组,这会让节点拥有完全集群控制权限,带来极高安全隐患。
  • EKS控制台健康检查依赖节点角色的标准映射配置,偏离默认配置易触发误判,推荐通过RBAC机制扩展权限而非修改默认组映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:55:26