创建企业空间、项目、帐户和角色
目标
本指南演示如何创建其它章节教程所需的角色和用户帐户,同时,您将学习如何在工作负载运行的企业空间中创建项目和 DevOps 工程。本教程之后,您将熟悉 KubeSphere 多租户管理系统。
先决条件
KubeSphere 需要安装在您的服务器中。
视频演示
估计时间
大约 15 分钟。
架构
KubeSphere 的多租户系统分三个层级,即群集、企业空间和项目。KubeSphere 中的项目等同于 Kubernetes 命名空间。
您需要创建一个新的企业空间工作,而不是在系统空间里操作,因为系统空间是系统资源运行的地方,绝大部分资源只有查看权限。而且强烈建议别用平台管理员工作,这对系统是不安全的。
一个租户可以在一个 KubeSphere 集群中创建多个企业空间,在每个企业空间下,还可以创建多个项目。每个级别都有多个内置角色。此外,KubeSphere 还允许使用自定义授权创建角色。KubeSphere 多层次结构适用于具有不同团队或组织以及每个团队中需要不同角色的企业用户。
动手实验
任务 1:创建帐户
安装 KubeSphere 之后,需要向平台添加具有不同角色的用户,以便他们可以在自己授权的资源上工作。系统默认只有一个帐户admin
,被授予角色platform-admin
。在第一个任务中,您将创建一个帐户user-manager
,然后用user-manager
这个账号创建更多的新账户。
使用默认帐户和密码(admin/P@88w0rd)以
admin
身份登录 Web 控制台。提示
为了帐户安全,强烈建议您在首次登录控制台时更改密码,请在右上角的下拉菜单中选择用户设置,在密码设置中输入新密码。您也可以在这个地方设置语言。
登录控制台后,单击左上角的平台管理,然后选择访问控制。
在帐户角色中,有如下所示四个可用的内置角色。接下来要创建的第一个帐户将被分配为
users-manager
角色。内置角色 描述 workspaces-manager 企业空间管理员,管理平台所有企业空间。 users-manager 用户管理员,管理平台所有用户。 platform-regular 平台普通用户,在被邀请加入企业空间或集群之前没有任何资源操作权限。 platform-admin 平台管理员,可以管理平台内的所有资源。 备注
内置角色由 KubeSphere 自动创建,无法编辑或删除。
在账户管理中,点击创建。在弹出窗口中,提供所有必需的信息(带有*标记),然后为角色选择
users-manager
。请参考下图示例。完成后,单击确定。新创建的帐户将显示在帐户管理中的帐户列表中。
切换账号使用
user-manager
重新登录,创建如下四个新帐户,这些帐户将在今后的教程中使用到。提示
账号登出请单击右上角的用户名,然后选择登出。
账户名 角色 描述信息 ws-manager workspaces-manager 创建和管理所有企业空间。 ws-admin platform-regular 管理指定企业空间中的所有资源(在此示例中,此帐户用于邀请新成员加入该企业空间)。 project-admin platform-regular 创建和管理项目以及 DevOps 项目,并邀请新成员加入项目。 project-regular platform-regular project-regular
将被project-admin
邀请到一个项目或 DevOps 项目。该帐户将用于在指定项目中创建工作负载,流水线和其他资源。查看创建的四个帐户。
任务2:创建企业空间
在此任务中,您需要使用上一个任务中创建的帐户ws-manager
创建一个企业空间。作为项目,DevOps 项目和组织成员的基本管理逻辑单元,企业空间是 KubeSphere 多租户系统的基础。
以
ws-manager
身份登录 KubeSphere,它具有管理平台上所有企业空间的权限。点击左上角的平台管理,选择访问控制。在企业空间中,可以看到仅列出了一个默认企业空间system-workspace,这是一个系统空间,其中运行与系统相关的组件和服务,您不允许删除该企业空间。单击右侧的创建,将新企业空间命名为
demo-workspace
,并将用户ws-admin
设置为企业空间管理员,如下图所示:完成后,单击创建。
登出控制台,然后以
ws-admin
身份重新登录。在企业空间设置中,选择企业成员,然后单击邀请成员。邀请
project-admin
和project-regular
进入企业空间,分别授予他们self-provisioner
和workspace-viewer
角色。备注
实际角色名称的格式:
<workspace name>-<role name>
。例如,在名为demo-workspace
的企业空间中,角色viewer
的实际角色名称是demo-workspace-viewer
。将
project-admin
和project-regular
都添加到企业空间后,单击确定。在企业成员中,您可以看到列出的三个成员。账户名 角色 描述信息 ws-admin workspace-admin 管理指定企业空间中的所有资源(在此示例中,此帐户用于邀请新成员加入企业空间)。 project-admin workspace-self-provisioner 创建和管理项目以及 DevOps 工程,并邀请新成员加入项目。 project-regular workspace-viewer project-regular
将被project-admin
邀请到一个项目或 DevOps 工程。该帐户将用于在指定项目中创建工作负载,流水线和其他资源。
任务3:创建一个项目
在此任务中,您需要使用在上一个任务中创建的帐户project-admin
来创建项目。KubeSphere 中的项目与 Kubernetes 中的命名空间相同,后者为资源提供了虚拟隔离。有关更多信息,请参见命名空间。
以
project-admin
身份登录 KubeSphere,在项目管理中,单击创建。输入项目名称(例如
demo-project
),然后点击确定以完成,您还可以为项目添加别名和描述。在项目管理中,单击刚刚创建的项目查看其详细信息。
在项目的概述页面中,默认情况下未设置项目配额。您可以单击设置并根据需要指定资源请求和限制(例如:1 个 CPU 内核和 1000Gi 内存)。
邀请
project-regular
参与该项目,并授予该用户operator
角色。请参考下图以了解具体步骤。信息
被授予角色
operator
的用户将是项目维护者,他可以管理项目中用户和角色以外的资源。在创建路由即 Ingress 之前,需要启用该项目的网关。网关是在项目中运行的 NGNIX Ingress 控制器。要设置网关,请转到项目设置中的高级设置,然后单击设置网关。此步骤中仍使用帐户
project-admin
。选择访问方式 NodePort ,然后单击保存。
在外网访问下,可以在页面上看到网关地址和 http/https 的端口。
备注
如果要使用
LoadBalancer
暴露服务,则需要使用云提供商的 LoadBalancer 插件。如果您的 Kubernetes 集群在裸机环境中运行,建议使用 Porter 作为 LoadBalancer 插件。
任务4:创建角色
完成上述任务后,您将知道可以为不同级别的用户授予不同角色。先前任务中使用的角色都是 KubeSphere 提供的内置角色。在此任务中,您将学习如何自己定义角色以满足工作需求。
再次以
admin
身份登录控制台,然后转到访问控制。在帐户角色中,列出了四个无法删除或编辑的系统角色。点击创建并设置角色标识符。在这个例子中,将创建一个名为
roles-manager
的角色。备注
建议您输入角色说明解释此角色的用途。此处创建的角色将仅负责角色管理,包括添加和删除角色。
点击编辑权限。
在访问控制中,选择您希望授予该角色的用户所拥有的授权。例如,为此角色选择了用户查看,角色管理和角色查看。单击确定完成。
备注
依赖于意味着当前授权项依赖列出的授权项,系统会自动选上该依赖项。
新创建的角色将列在帐户角色中,可以单击右侧的三个点对其进行编辑。
在账户管理中,添加一个新帐户并将其授予角色
roles-manager
,也可以通过编辑将现有帐户的角色更改为roles-manager
。备注
roles-manager
的角色与users-manager
重叠,而后者还可以进行用户管理。本示例仅用于演示目的,您可以根据需要创建自定义角色。
任务5:创建一个 DevOps 工程(可选)
备注
要创建 DevOps 工程,需要预先安装 KubeSphere DevOps 系统,该系统是个可插拔的组件,提供 CI/CD 流水线,二进制到镜像,源码到镜像功能等。有关如何启用 DevOps 的更多信息,请参见 KubeSphere DevOps System。
以
project-admin
身份登录控制台,在 DevOps 工程中,单击创建。输入 DevOps 工程名称(例如
demo-devops
),然后点击确定,也可以为项目添加别名和描述。在 DevOps 工程中,单击刚创建的工程查看其详细信息。
转到工程管理,然后选择工程成员。单击邀请成员授予
project-regular
用户operator
的角色,该操作员可以创建流水线和凭证。
恭喜您!您现在已经熟悉 KubeSphere 的多租户管理系统。在接下来的几篇教程中,project-regular
帐户还将用于演示如何在项目或 DevOps 工程中创建应用程序和资源。