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

关于EKS集群中eks:cloud-controller-manager ClusterRole的疑问

我们在EKS集群中发现一个未手动创建的ClusterRole——eks:cloud-controller-manager,无法找到其创建来源,想了解该ClusterRole的作用。执行命令 kubectl get clusterrole eks:cloud-controller-manager -o yaml 得到如下配置:

kind: ClusterRole
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRole","metadata":{"annotations":{},"name":"eks:cloud-controller-manager"},"rules":[{"apiGroups":[""],"resources":["events"],"verbs":["create","patch","update"]},{"apiGroups":[""],"resources":["nodes"],"verbs":["*"]},{"apiGroups":[""],"resources":["nodes/status"],"verbs":["patch"]},{"apiGroups":[""],"resources":["services"],"verbs":["list","patch","update","watch"]},{"apiGroups":[""],"resources":["services/status"],"verbs":["list","patch","update","watch"]},{"apiGroups":[""],"resources":["serviceaccounts"],"verbs":["create","get"]},{"apiGroups":[""],"resources":["persistentvolumes"],"verbs":["get","list","update","watch"]},{"apiGroups":[""],"resources":["endpoints"],"verbs":["create","get","list","watch","update"]},{"apiGroups":["coordination.k8s.io"],"resources":["leases"],"verbs":["create","get","list","watch","update"]},{"apiGroups":[""],"resources":["serviceaccounts/token"],"verbs":["create"]]}]
  creationTimestamp: "2022-08-02T00:25:52Z"
  name: eks:cloud-controller-manager
  resourceVersion: "762242250"
  uid: 34e568bb-20b5-4c33-8a7b-fcd081ae0a28
rules:
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
  - update
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - '*'
- apiGroups:
  - ""
  resources:
  - serviceaccounts/token
  verbs:
  - create

我们尝试在GitOps仓库中查找该对象,但没有找到。

回答

1. 创建来源说明

这个eks:cloud-controller-manager是AWS EKS集群自动创建并维护的系统级ClusterRole,并非由用户手动部署或通过GitOps流程推送的,所以你在GitOps仓库中找不到对应的配置文件。它是EKS控制平面在集群初始化、版本升级或组件更新时自动生成的,用于为集群内置的云控制器管理器(Cloud Controller Manager, CCM)提供必要权限。

2. 核心作用解析

该ClusterRole的权限完全匹配EKS云控制器管理器的工作需求,具体对应规则的用途如下:

  • 事件管理:对events资源的create/patch/update权限,允许CCM在集群中生成、更新事件日志,用于记录云资源交互的状态(例如节点注册成功、负载均衡器配置完成等)。
  • 节点全生命周期管理:对nodes资源的所有权限(*)及nodes/status的patch权限,支持CCM对接AWS EC2服务,完成节点的注册、状态同步、故障标记等核心操作。
  • 服务与负载均衡管理:对services及services/status的list/patch/update/watch权限,用于将集群内LoadBalancer类型的Service与AWS ELB/NLB等云负载均衡器进行绑定、同步配置和状态。
  • 服务账户与令牌管理:对serviceaccounts的create/get权限和serviceaccounts/token的create权限,允许CCM创建自身运行所需的服务账户及身份令牌,完成组件的身份认证。
  • 存储卷管理:对persistentvolumes的get/list/update/watch权限,支持CCM对接AWS EBS等存储服务,同步PersistentVolume的状态并管理其生命周期。
  • 端点管理:对endpoints的create/get/list/watch/update权限,确保服务端点与云资源的映射关系准确。
  • 领导者选举:对coordination.k8s.io/leases的全生命周期权限,用于CCM组件的领导者选举机制,保证同一时刻只有一个活跃实例工作,避免操作冲突。

3. 重要注意事项

  • 该角色是EKS集群正常运行的必要组件,禁止随意删除或修改,否则会导致节点管理、负载均衡配置、存储卷调度等核心功能失效。
  • 若需调整相关权限,应通过AWS官方提供的EKS配置方式(如修改集群组件的RBAC规则)进行,避免直接手动修改该ClusterRole——EKS控制平面在后续更新时会覆盖手动修改的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:45:11