KubeCube 多级租户模型中预设了四种角色,它们的权限由大到小分别是:
在实现上,四种角色是四个 ClusterRole 定义,使用 CluaterRoleBinding 可以给用户授予平台管理员权限,使用 RoleBinding 可以给用户授予受限的租户管理员、项目管理员和项目观察员权限。在层级命名空间结构中,授予一个用户租户管理员权限相当于在租户关联的命名空间及它所有下级命名空间下创建 RoleBinding ,同理授予一个用户项目管理员和项目观察员权限相当于在项目关联的命名空间及它所有下级命名空间下创建 RoleBinding 。
HNC 控制器组件在创建 Namespace 的时候,可以指定把 SubNamespace 所在的父命名空间的所有 RoleBinding 信息往下复制传递。因此给用户授予租户管理员权限时只需要在指定租户关联的命名空间下创建 RoleBinding ,授权项目管理员和项目观察员权限时只需要在指定项目关联的命名空间下创建 RoleBinding ,权限绑定关系会随着命名空间的创建逐级复制下发,最终在命名空间下会拥有不同人不同角色的 RoleBinding 信息。
KubeCube 的配额管理主要是针对多租户共享的 K8s 基础设施集群的资源分配,平台管理员可以为每一个租户划分每一个 K8s 集群的资源使用额度,包括 CPU、内存、磁盘和GPU的配额大小。租户管理员可以继续给项目划分配额,项目管理员可以给每一个承载应用系统的命名空间划分配额。集群信息 Cluster (CRD)里记录着整个集群的可用配额信息,租户和项目的配额信息和已分配信息存储在 CubeResourceQuta (CRD)里,命名空间的配额信息使用 K8s 原生 ResourceQuota 。
实际使用的时候,项目配额可以省略,如 KubeCube 默认集成的管理平台,平台管理员只需要给每一个租户划分每一个 K8s 集群的可用额度,项目管理员在每一个 K8s 集群上创建命名空间的时候都不能分配超出所属租户的资源额度。
KubeCube 多级租户模型突破传统的容器服务多租户模式,采用租户、项目和空间的三级结构,与企业组织架构和软件管理适配,实现更细粒度的资源配额管理,满足企业统一容器平台的构建需求。以多层级命名空间为基础,租户项目权限隔离兼容原生 RBAC,使得 KubeCube 多级租户模型可以更好的兼容原生 K8s 集群,完全能够在已有 K8s 集群上进行原地升级安装 KubeCube。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。