阅读 191

Fastapi框架+KubeSphere3.1.0系列(2): kubesphere多租户管理系统理解和实践

一、说明

对官网的文档的操作实践,其实也是一个学习和理解的过程,以下的操作主要是个人根据官网步骤,根据自己实际进行相关的笔记记录。仅供参考!

PS:大部分的来自官网的!!!!如果感兴趣建议去官网查看,这里我只是为了我自己方便,做的相关的记录!

二、kubesphere多租户管理系统架构说明

KubeSphere 的多租户系统分三个层级,即集群、企业空间和项目。

  • 它是基于RBAC角色控制访问
  • KubeSphere 中的项目等同于 Kubernetes 的命名空间
  • 集群资源包含了所有整个资源信息(包括节点和节点里面的资源)
  • 集群资源下需要细分为不同的企业空间,默认的情况下我们的k8s有一个系统资源
  • 给不同的企业空间纷纷不同的角色对象,不同的企业空间相互的隔离
  • 一个集群可以创建多个企业空间
  • 每个企业空间可以创建属于这个空间下的项目和DevOps工程项目
  • KubeSphere 为每个级别默认设有多个内置角色
  • KubeSphere 多层次结构适用于具有不同团队或组织以及每个团队中需要不同角色的企业用户。

三、kubesphere默认的几个角色

image.png

内置角色描述
workspaces-manager企业空间管理员,管理平台所有企业空间。
users-manager用户管理员,管理平台所有用户。
platform-regular平台普通用户,在被邀请加入企业空间或集群之前没有任何资源操作权限。
platform-admin平台管理员,可以管理平台内的所有资源。

备注

内置角色由 KubeSphere 自动创建,无法编辑或删除。

三、租户管理管理实践

3.1 创建用户管理员账户信息

创建的第一个帐户将被分配 xiaozhong-users-manager 角色,该角色是用户管理员,只能管理平台的用户。不能管理其他资源信息。

  • 步骤1:登录控制台后,点击左上角的平台管理,然后选择访问控制

image.png

  • 步骤2:在帐户管理中,点击创建。在弹出窗口中,提供所有必要信息(带有*标记),然后在角色字段选择 users-manager

image.png

image.png

image.png 完成后,点击确定。新创建的帐户将显示在帐户管理中的帐户列表中。

image.png

3.2 xiaozhong-users-manager用户管理员创建其他账号

退出admin,使用xiaozhong-users-manager登入系统!使用 xiaozhong-users-manager 重新登录。

image.png

创建如下四个新帐户:

  1. 切换帐户使用 xiaozhong-user-manager 重新登录,创建如下四个新帐户,这些帐户将在其他的教程中使用。

    提示

    帐户登出请点击右上角的用户名,然后选择登出

    帐户角色描述
    ws-managerworkspaces-manager创建和管理所有企业空间。
    ws-adminplatform-regular管理指定企业空间中的所有资源(在此示例中,此帐户用于邀请新成员加入该企业空间)。
    project-adminplatform-regular创建和管理项目以及 DevOps 工程,并邀请新成员加入项目。
    project-regularplatform-regularproject-regular 将由 project-admin 邀请至项目或 DevOps 工程。该帐户将用于在指定项目中创建工作负载、流水线和其他资源。

查看创建的四个帐户:

image.png

3.3 ws-manager账号创建企业空间

企业空间是:

  • 作为管理项目、DevOps 工程和组织成员的基本逻辑单元
  • 是 KubeSphere 多租户系统的基础
  • 我们可以理解现实中同一个公司不同的团队,或不同的子公司一样。

ws-manager 身份登录 KubeSphere,它具有管理平台上所有企业空间的权限!

点击左上角的平台管理,选择访问控制。在企业空间中,可以看到仅列出了一个默认企业空间 system-workspace,即系统企业空间,其中运行着与系统相关的组件和服务,

  • 您无法删除该企业空间。
  • 账号管理也无法进行增删改。

image.png

点击右侧的创建,将新企业空间命名为 demo-workspace,并将用户 ws-admin 设置为企业空间管理员,如下图所示:

image.png

3.4 ws-admin登入企业空间,创建项目

1:以 ws-admin 身份重新登录。在企业空间设置中,选择企业成员,然后点击邀请成员

image.png

image.png

2:邀请 project-admin 和 project-regular 进入企业空间,分别授予他们 workspace-self-provisioner 和 workspace-viewer 角色。

image.png

3:将 project-admin 和 project-regular 都添加到企业空间后,点击确定。在企业成员中,您可以看到列出的三名成员。

image.png

账号和角色关系:

帐户角色描述
ws-adminworkspace-admin管理指定企业空间中的所有资源(在此示例中,此帐户用于邀请新成员加入企业空间)。
project-adminworkspace-self-provisioner创建和管理项目以及 DevOps 工程,并邀请新成员加入项目。
project-regularworkspace-viewerproject-regular 将由 project-admin 邀请至项目或 DevOps 工程。该帐户将用于在指定项目中创建工作负载、流水线和其他资源。

3.5 project-admin 来创建项目

使用在上一步骤中创建的帐户 project-admin 来创建项目。KubeSphere 中的项目与 Kubernetes 中的命名空间相同,为资源提供了虚拟隔离。

image.png

1:以 project-admin 身份登录 KubeSphere,在项目管理中,点击创建

image.png

2:输入项目名称(例如 demo-project),然后点击确定完成,您还可以为项目添加别名和描述

image.png

3:在项目管理中,点击刚创建的项目查看其详细信息。

image.png

4:在项目的概览页面,默认情况下未设置项目配额。您可以点击设置并根据需要指定资源请求和限制(例如:CPU 和内存的限制分别设为 1 Core 和 1000 Gi)。

image.png

image.png

image.png

5:邀请 project-regular 至该项目,并授予该用户 operator 角色。请参考下图以了解具体步骤。

image.png

image.png

具有 operator 角色的用户是项目维护者,可以管理项目中除用户和角色以外的资源。

6:在创建应用路由(即 Kubernetes 中的 Ingress)之前,需要启用该项目的网关。网关是在项目中运行的 NGINX Ingress 控制器。若要设置网关,请转到项目设置中的高级设置,然后点击设置网关。此步骤中仍使用帐户 project-admin

image.png

PS:从这里可以理解到我们的k8s对应的service一些实用的知识点。

7: 选择访问方式 NodePort,然后点击保存

image.png

8:在外网访问下,可以在页面上看到网关地址以及 http/https 的端口。

备注

如果要使用 LoadBalancer 暴露服务,则需要使用云厂商的 LoadBalancer 插件。如果您的 Kubernetes 集群在裸机环境中运行,建议使用 PorterLB 作为 LoadBalancer 插件。

image.png

3.6 自定义角色权限

1: 是admin(系统默认的超级管理员账户)进行登入

image.png

2: 分配角色权限

image.png

3: 分配权限操作

image.png

image.png

image.png

总结

其实对租户管理系统的细分那么多的账号信息出来,主要还是为了划分好用户权限边界,避免用户越权操作!


以上仅仅是个人结合自己的实际需求,做学习的实践笔记!如有笔误!欢迎批评指正!感谢各位大佬!

结尾

END

简书:www.jianshu.com/u/d6960089b…

掘金:juejin.cn/user/296393…

公众号:微信搜【小儿来一壶枸杞酒泡茶】

小钟同学 | 文 【欢迎一起学习交流】| QQ:308711822

文章分类
后端
文章标签