目的

本文档面向初次使用 KubeSphere 的集群管理员用户,引导新手用户创建企业空间、创建新的角色和账户,然后邀请新用户进入企业空间后,创建项目和 DevOps 工程,并引导管理员使用 web Kubectl 工具,帮助用户熟悉多租户下的用户和角色管理,以及 web Kubectl 工具的使用,快速上手 KubeSphere。

前提条件

已安装 KubeSphere,并使用默认的 admin 用户名和密码登录了 KubeSphere。

预估时间

约 15 分钟。

操作示例

示例视频

目前,平台的资源层级包括 Cluster, Workspace, Project 和 DevOps 工程,层级关系如下图所示,在每个层级中,每个组织中都有多个不同的内置角色。

resource-hierarchy

集群管理员

第一步:创建角色和账号

平台中的 cluster-admin 角色可以为其他用户创建账号并分配平台角色,平台内置了集群层级的以下三个常用的角色,同时支持自定义新的角色。

  • cluster-admin
  • cluster-regular
  • workspaces-manager

本示例首先新建一个角色 (user-manager),为该角色授予账号管理和角色管理的权限,然后新建一个账号并给这个账号授予 user-manager 角色。

账号名 集群角色 职责
user-manager user-manager 管理集群的账户和角色

1.1. 点击控制台左上角 平台管理 → 平台角色,可以看到当前的角色列表,点击 创建,创建一个角色用于管理所有账户和角色。

创建角色

1.2. 填写角色的基本信息和权限设置。

  • 名称:起一个简洁明了的名称,便于用户浏览和搜索,如 user-manager
  • 描述信息:简单介绍该角色的职责,如 管理账户和角色

基本信息

1.3. 权限设置中,勾选账户管理和角色管理的所有权限,点击 创建

权限列表

1.4. 点击控制台左上角 平台管理 → 账号管理,可以看到当前集群中所有用户的列表,点击 创建 按钮。

创建账号

1.5. 填写新用户的基本信息,如用户名设置为 user-manager,角色选择 user-manager,其它信息可自定义,点击 确定

说明:上述步骤仅简单地说明创建流程,关于账号管理与角色权限管理的详细说明,请参考 角色权限概览账号管理

添加用户

1.6. 然后用 user-manager 来创建下表的一个 workspace-manager 和三个 cluster-regular 角色的账号,workspace-manager 将用于创建一个企业空间,并指定其中一个用户名为 ws-admin 作为企业空间管理员。切换成上一步创建的 user-manager 账号登录 KubeSphere,在 账号管理 下,新建四个账号,创建步骤同上,参考如下信息创建。

账号名 集群角色 企业空间角色 职责
ws-manager workspaces-manager workspace-admin (默认) 创建和管理企业空间
ws-admin cluster-regular workspace-admin 管理企业空间下所有的资源
(本示例用于邀请新成员加入企业空间)
project-admin cluster-regular workspace-regular 创建和管理项目、DevOps 工程,邀请新成员加入
project-regular cluster-regular workspace-regular 将被 project-admin 邀请加入项目和 DevOps 工程,
用于创建项目和工程下的工作负载、Pipeline 等资源

1.7. 查看新建的四个账号信息。

查看账号列表

企业空间管理员

第二步:创建企业空间

企业空间 (workspace) 是 KubeSphere 实现多租户模式的基础,是用户管理项目、DevOps 工程和企业成员的基本单位。

2.1. 切换为 ws-manager 登录 KubeSphere,ws-manager 有权限查看和管理平台的所有企业空间。

点击 企业空间,可见新安装的环境只有一个系统默认的企业空间 system-workspace,用于运行 KubeSphere 平台相关组件和服务,禁止删除该企业空间。

在企业空间列表点击 创建

企业空间列表

2.2. 参考如下提示填写企业空间的基本信息,然后点击 确定。企业空间的创建者同时默认为该企业空间的管理员 (workspace-admin),拥有企业空间的最高管理权限。

  • 企业空间名称:请尽量保持企业名称简短,便于用户浏览和搜索,本示例是 demo-workspace
  • 企业空间管理员:可从当前的集群成员中指定,这里指定上一步创建的 ws-admin 用户为管理员,相当于同时邀请了 ws-admin 用户进入该企业空间
  • 描述信息:简单介绍该企业空间

填写基本信息

说明:企业空间管理的详细说明请参考 企业空间管理

2.3. 企业空间 demo-workspace 创建完成后,切换为 ws-admin 登录 KubeSphere,如果用户只有一个企业空间,登录进去后会直接进入该企业空间,可看到该企业空间的概览页。ws-admin 可以从集群成员中邀请新成员加入当前企业空间,然后创建项目和 DevOps 工程。在左侧菜单栏选择 企业空间管理 → 成员管理,点击 邀请成员

邀请成员

2.4. 这一步需要邀请在 步骤 1.6. 创建的两个用户 project-adminproject-regular 进入企业空间,并且都授予 workspace-regular 的角色。

邀请 project-regular

项目和 DevOps 工程管理员

第三步:创建项目

创建工作负载、服务和 CI/CD 流水线等资源,需要先创建好项目和 DevOps 工程。

3.1. 上一步将用户 project-admin 邀请进入企业空间后,可切换为 project-admin 账号登录 KubeSphere,默认进入 demo-workspace 企业空间下,点击 创建,选择 创建资源型项目

企业空间列表

3.2. 填写项目的基本信息和高级设置,完成后点击 下一步

基本信息

  • 名称:为项目起一个简洁明了的名称,便于用户浏览和搜索,比如 demo-namespace
  • 别名:帮助您更好的区分资源,并支持中文名称,比如 示例项目
  • 描述信息:简单介绍该项目

创建项目

高级设置

3.3. 此处可使用默认的请求值 (requests) 与限额值 (limits),在项目使用过程中可根据实际情况再次编辑资源默认请求。高级设置是在当前项目中配置容器默认的 CPU 和内存的请求与限额,相当于是给项目创建了一个 Kubernetes 的 LimitRange 对象,在项目中创建工作负载后填写容器组模板时,若不填写容器 CPU 和内存的请求与限额,则容器会被分配在高级设置的默认 CPU 和内存请求与限额值。

完成高级设置后,点击 创建

高级设置

说明:项目管理和设置的详细说明,请参考用户指南下的项目设置系列文档。

3.4. 示例项目 demo-namespace 创建成功后,点击进入示例项目。在 步骤 2.4. 已邀请用户 project-regular 加入了当前企业空间 demo-workspace,下一步则需要邀请 project-regular 进入该企业空间下的项目 demo-namespace。点击项目列表中的 demo-namespace 进入该项目。

项目列表

3.5. 在项目的左侧菜单栏选择 项目设置 → 项目成员,点击 邀请成员

邀请成员

3.6. 在弹窗中的 project-regular 点击 "+",在项目的内置角色中选择 operator 角色。因此,后续在项目中创建和管理资源,都可以由 project-regular 用户登录后进行操作。

邀请 operator

第四步:创建 DevOps 工程

4.1. 继续使用 project-admin 用户创建 DevOps 工程。点击 工作台,在当前企业空间下,点击 创建,在弹窗中选择 创建一个 DevOps 工程。DevOps 工程的创建者 project-admin 将默认为该工程的 Owner,拥有 DevOps 工程的最高权限。

创建 DevOps

4.2. 输入 DevOps 工程的名称和描述信息,比如名称为 demo-devops。点击 创建,注意创建一个 DevOps 有一个初始化环境的过程需要几秒钟。

devops_create_project

说明:DevOps 工程管理的详细说明请参考 管理 DevOps 工程

4.3. 点击 DevOps 工程列表中的 demo-devops 进入该工程的详情页。

创建成功

4.4. 同上,这一步需要在 demo-devops 工程中邀请用户 project-regular,并设置角色为 maintainer,用于对工程内的 Pipeline、凭证等创建和配置等操作。菜单栏选择 工程管理 → 工程成员,然后点击 邀请成员,为用户 project-regular 设置角色为 maintainer。后续在 DevOps 工程中创建 Pipeline 和凭证等资源,都可以由 project-regular 用户登录后进行操作。

邀请成员进入工程 设置角色

使用 web kubectl

kubectl 是用于操作 Kubernetes 集群的命令行接口。

KubeSphere 在界面提供了 web kubectl 方便用户使用,默认情况下,仅集群管理员 (cluster-admin) 拥有 web kubectl 的使用权限,可以直接使用 kubectl 命令行操作和管理集群资源。

集群管理员登录后,点击右下角的 web kubectl 按钮,即可打开 web kubectl 窗口

kubectl 位置

在 web kubectl 可输入 kubectl 命令查询或管理 Kubernetes 集群资源。另外,web kubectl 窗口支持查看当前集群的 Kubeconfig 文件。

例如,执行以下命令查询集群中所有 PVC 的挂载情况:

  1. kubectl get pvc --all-namespaces

查询 PVC

从 kubectl 终端窗口可使用以下语法运行 kubectl 命令:

  1. kubectl [command] [TYPE] [NAME] [flags]

说明: 其中 command,TYPE,NAME,和 flags 分别是:

  • command: 指定要在一个或多个资源进行操作,例如 create,get,describe,delete。
  • TYPE:指定资源类型。资源类型区分大小写,您可以指定单数,复数或缩写形式。
  • NAME:指定资源的名称。名称区分大小写。如果省略名称,则会显示所有资源的详细信息,比如 kubectl get pods
  • flags:指定可选标志。例如,您可以使用 -s 或 —serverflags 来指定 Kubernetes API 服务器的地址和端口。重要提示:从命令行指定的标志将覆盖默认值和任何相应的环境变量。

如果需要查询常用命令帮助,可在窗口运行 kubectl help,或参阅 Kubernetes 官方文档

至此,本文档为您演示了如何在多租户的基础上,使用账户管理和角色管理的功能,以示例的方式介绍了常用内置角色的用法,以及创建项目和 DevOps 工程,并且说明了如何使用 web kubectl。请参考 快速入门 系列文档的 7 个示例,使用 project-regular 用户登录 KubeSphere 动手实践操作一遍,创建具体的工作负载、服务和 CI / CD 流水线。