一、K8s多用户和权限分配的使用场景¶
1.1 针对不同租户¶

多租户资源隔离场景
- 场景描述:不同租户(如租户 A、B、C)需在同一 K8s 集群中独立使用资源,避免资源混淆与权限交叉。
- 权限分配:通过 Namespace 划分资源边界,为每个租户分配对专属 Namespace(如 NameSpace A1、B1、C1)的完全访问权限,确保租户仅能操作自身资源,实现租户级别的资源隔离与权限隔离。
1.2 针对不同团队¶

团队协作分工场景
- 场景描述:同一集群内不同团队(如团队 A、B、C)协作开发,但需限制非关联资源的访问权限。
- 权限分配:为团队配置差异化权限,如团队 A 对部分 Namespace 完全访问,对其他 Namespace 限制访问;团队 B 仅完全访问专属 Namespace B1。通过细粒度权限控制,既保障协作需求,又避免越权操作。
1.3 针对不同场景不同角色¶

环境分层管理场景
- 场景描述:开发、测试、生产等不同环境需严格区分访问权限,保障环境安全性。
- 权限分配:按角色划分权限,如开发人员对开发环境完全访问,对测试、生产环境限制访问;测试人员对测试环境只读访问;运维人员对生产环境完全访问。通过环境与角色的权限绑定,确保各环节操作符合安全规范。
1.4 小结¶
权限分配小结:
- 1)需要根据不同租户、不同团队、不同角色创建用户或组
- 2)每个用户或组可能有一个或多个不同空间的不同权限
二、K8s常用权限需求分析¶
K8s常用权限归纳如下:
- 1)Namespace列表查看权限
- 2)日志查看权限
- 3)执行命令权限
- 4)Pod删除权限(非生产环境)
- 5)资源编辑权限
- 6)其他权限
三、K8s如何进行合理的用户和权限管理¶

K8s 通过以下方式实现合理的用户和权限管理:
1、用户身份管理
定义用户主体(如 userA、userB、userC 等 kube-user),作为权限分配的基础单元,明确操作集群的身份标识,确保所有操作可追溯至具体用户。
2、权限抽象与组合
利用 通用权限列表 拆分细化权限(如查看空间列表、Pod 查日志、执行命令、删除资源、编辑资源等),将这些基础权限组合成不同角色(如管理员、开发者、观察者),实现权限的模块化管理,避免重复定义。
3、资源范围控制
- 指定空间授权:针对特定
NameSpace(如NameSpace A、NameSpace B)单独授权,允许用户仅在指定命名空间内拥有对应权限,实现资源隔离。 - 全局授权:对需要跨命名空间操作的用户,授权 “全部空间” 访问权限,平衡灵活性与安全性。
4、细粒度授权策略
通过关联用户、权限列表和资源范围(命名空间),实现精细化控制。例如:为 userA 授权 “全部空间” 的通用权限,为 userB 仅开放 NameSpace A 的部分权限,确保不同用户在对应资源范围内行使合理权限,规避越权风险。