前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KubeCube 多级租户模型中预设了四种角色

KubeCube 多级租户模型中预设了四种角色

原创
作者头像
用户8671053
修改2021-09-24 14:22:11
7000
修改2021-09-24 14:22:11
举报
文章被收录于专栏:码农的生活码农的生活

KubeCube 多级租户模型中预设了四种角色,它们的权限由大到小分别是:

  • 平台管理员:拥有最高权限,负责管理 K8s 集群,创建租户,设定角色权限和租户配额。
  • 租户管理员:拥有某个租户的所有权限,主要负责租户下的项目管理。
  • 项目管理员:负责在 K8s 集群上创建命名空间,部署应用,配置监控。
  • 项目观察员:仅拥有项目下命名空间和资源的查询权限,可以查看应用日志和监控。

在实现上,四种角色是四个 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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 资源配额管理设计
  • 总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档