随着容器化的快速发展,大数据原有的分布式任务调度模式,正在被基于Kubernetes的技术架构所取代。CCE云容器引擎是华为云推出的支持Kubernetes社区原生应用和工具,应用级自动弹性伸缩,自动化搭建云上容器平台。用户通过云容器引擎可以快速高效的将微服务部署在云端。
为方便管理员对CCE资源的权限管理,后台提供了多种维度的细粒度权限管理。CCE的权限管理包括“集群权限”和“命名空间权限”两种能力,分别从集群和命名空间层面对用户组或用户进行细粒度授权,具体解释如下:
集群权限:是基于IAM系统策略的授权,可以让用户组拥有“集群管理”、“节点管理”、“节点池管理”、“模板市场”、“插件管理”权限。
命名空间权限:是基于Kubernetes RBAC能力的授权。可以让用户或用户组拥有“工作负载”、“网络管理”、“存储管理”、“命名空间”权限。
基于IAM系统策略的“集群权限”与基于Kubernetes RBAC能力的命名空间权限,两者是完全独立的,互不影响,但要配合使用。同时,为用户组设置的权限将作用于用户组下的全部用户。当给用户或用户组添加多个权限时,多个权限会同时生效(取并集)。
通常一个公司中有多个部门或项目,每个部门又有多个成员。所以,在配置权限时需要进行详细设计。如下图所示的组织架构图,权限该如何设置呢?
主管:DAVID
由于DAVID需要配置CCE相关的所有权限(包括集群、k8s资源等)。所以,单独为DAVID创建用户组“cce-admin”,并配置所有项目的权限:“CCE Administrator”。
温馨提示:
CCE Administrator:CCE的管理员权限,拥有该服务的所有权限,不需要再赋予其他权限。
CCE FullAccess、CCE ReadOnlyAccess:CCE的集群管理权限,仅针对与集群相关的资源(如集群、节点)有效,您必须确保同时配置了“命名空间权限”,才能有操作Kubernetes资源(如工作负载、Service等)的权限。
运维组长:JAMES
为JAMES创建用户组“cce-sre”,并配置所有项目的权限:“CCE FullAccess”。自此,便有了所有项目的集群管理权限。
由于很多工程师都需要只读权限,所以,应创建只读用户组“read_only”。然后,将相关用户都添加到此用户组。最后,在CCE的“权限管理”、“命名空间权限”界面为此用户组逐个赋予所有集群的“view”权限。
开发组长:ROBERT
由于开发组成员并不需要配置集群管理权限,但也要有界面的只读权限,所以,应赋予只读用户组“read_only”CCE界面的只读权限。
同时,再另外赋予其k8s资源的管理员权限。
运维工程师:WILLIAM
为WILLIAM创建用户组“cce-sre-b4”,然后配置北京四项目的“CCE FullAccess”。
开发工程师:LINDA、PETER
由于前面已经在用户组“read-only”中为两位工程师配置的全局的只读权限,这里只需要再另外配置相应的管理权限即可。
小问题:
能否只配置命名空间权限,不配置集群管理权限?
由于界面权限是由IAM系统策略进行判断,所以,如果未配置集群管理权限,就没有打开界面的权限。
那是否可以使用API呢?
答案也是否定的,因为API都需要进行IAM的token认证。
那是否可以使用kubectl命令呢?
答案是肯定的。但前提是要先从界面上下载kubectl配置文件。所以,如果先配置了集群权限,然后再界面下载认证文件。后面再删除集群管理权限(保留命名空间权限),依然可以使用kubectl来操作k8s集群。
点击这里,了解更多精彩内容