知行学院总结:如何解决 Kubernetes 的多租户难题( 八 )

项目内的权限管理就非常灵活了,作为一个项目的管理员,可以灵活的定制项目角色,将你的项目共享给其他同事。

有了一个清晰的租户模型,还需要考虑的 API 的权限校验。

因为存在大量封装的租户 API、第三方服务(日志、监控等),我们很多的服务并不适合直接聚合到 kube-apiserver 中。

我们做了如下的架构:

最上层是我们的 API Gateway,他是我们 Kubesphere 的流量入口,主要实现用户的认证、鉴权和代理请求。

再到内部就是我们的 Tenant API, 包括 iam api、resources API,监控和日志的 API,我们都针对多租户场景进行了封装,而不是直接 hack 基础服务。

所有的租户 API 都构建再这些基础服务至上,包括 普罗米修斯、jenkins、K8S 等等。

有了这样一个统一的入口,我们的 API 可以很方便的开放给企业用户,与他们的账户系统、监控告警系统、日志系统进行集成。

推荐阅读