更新授权相关的截图

This commit is contained in:
huanqing.shao
2020-04-19 09:35:49 +08:00
parent 92df7436cc
commit b78439e550
23 changed files with 41 additions and 28 deletions

View File

@ -11,6 +11,8 @@ meta:
# Kubernetes教程
<AdSenseTitle/>
<div class="row">
<!-- <div class="col-md-4 col-sm-12" style="margin-top: 1rem;">
<a href="#kubernetes免费教程">
@ -89,6 +91,7 @@ meta:
* 完善工具配置
* [掌握快速部署高可用Kubernetes集群的窍门](https://github.com/fanux/sealos)
* [自定义Kuboard名称空间布局](/install/install-kuboard-layout.html)
* [创建ServiceAccount并授权其访问指定的名称空间](/learning/k8s-advanced/sec/kuboard.html)
* [实现Kubernetes与GitLab/GitHub的单点登录](/learning/k8s-advanced/sec/authenticate/install.html)
* [了解日志聚合](/learning/k8s-advanced/logs/)
* [了解Kubernetes的监控](/guide/example/monitor.html)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

View File

@ -16,8 +16,8 @@ meta:
## 前提
* 您已经 [安装了 Kuboard](/install/install-dashboard-upgrade.html) <Badge>Kuboard v1.0.7</Badge>
* 使用 [管理员用户](/install/install-dashboard.html#获取token)) 登录 Kuboard
* 您已经 [安装了 Kuboard](/install/install-dashboard-upgrade.html) <Badge>Kuboard v1.0.9.3</Badge>
* 使用 [管理员用户 ](/install/install-dashboard.html#获取token)登录 Kuboard
## 为名称空间创建管理员用户
@ -27,37 +27,31 @@ meta:
* 用户名密码OpenID Connect的登录方式请参考 [使用 GitHub/GitLab 账号登录 Kubernetes](/learning/k8s-advanced/sec/authenticate/install.html)
:::
<Course courseId="484058" />
按照下面的步骤,可以快速为 Kubernetes 中的某个名称空间创建管理用户
* 进入 Kuboard 名称空间页面,如下图所示:
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200307233255088.png)
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200419082011962.png)
* 点击上图中的 ***权限管理*** 按钮,进入权限管理子菜单,如下图所示:
* 点击上图左侧菜单中的 ***权限管理*** -> ***ServiceAccount*** 按钮,进入 ServiceAccount 列表页面,如下图所示:
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200307233423531.png)
* 点击上图中的 ***ServiceAccount*** 按钮,进入 ServiceAccount 列表页面,如下图所示:
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200107220900840.png)
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200419082324736.png)
* 点击上图中的 ***创建ServiceAccount*** 按钮,如下图所示:
填写 **名称** 后,保存 *ServiceAccount*
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200107221016367.png)
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200419082433147.png)
* 完成创建后,将自动进入 ServiceAccount 详情页,如下图所示:
* 图中,可以看到 Kubernetes 默认为 ServiceAccount 授予的 ***集群级别权限***
* 可以为一个 Service Account 创建多个 Secret
* 也可以删除 Service Account 的原有 Secret
> 当您使用 Service Account 作为 Kuboard / Kubernetes Dashboard 的登录方式时,这个特性就显得非常有用,您可以定期更换 ServiceAccount 的 Secret Token以增强系统的安全性。
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200107221157156.png)
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200419082615222.png)
* 点击上图中 ***RoleBinding*** 后的 ***添加*** 按钮,如下图所示:
@ -66,19 +60,35 @@ meta:
* kind : ClusterRole
* name : admin
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200107221411054.png)
::: tip 授权范围
* 如果创建 `ClusterRoleBinding`,则,用户可以访问集群中的所有名称空间;
* 如果创建 `RoleBinding`,则,用户只能访问 RoleBinding 所在名称空间;
* 可以在名称空间 a 中创建一个 RoleBinding关联名称空间 b 中的 ServiceAccount 和某一个 ClusterRole以授权名称空间 b 中的 ServiceAccount 访问名称空间 a如此以使得该 ServiceAccount 可以访问多个指定的名称空间。
:::
::: tip 预置角色
Kubernetes 集群默认预置了三个面向用户的 ClusterRole
* `view` 可以查看 K8S 的主要对象,但是不能编辑
* `edit` 具备`view` 的所有权限,同时,可以编辑主要的 K8S 对象
* `admin` 具备 `edit` 的所有权限,同时,可以创建 Role 和 RoleBinding (在名称空间内给用户授权)
这三个 ClusterRole 均为 [Aggregated ClusterRole](./rbac/api.html#aggregated-clusterroles),可以通过聚合的方式向其添加新的访问权限,请参考 [为 viewer 增加查看容器日志的权限](./rbac/logs.html)
:::
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200419082725312.png)
* 点击上图中的 ***保存*** 按钮,完成后如下图所示:
可以观察到已经为 *admin-user* 这个 *ServiceAccount* 授予了名称空间内部的 *admin* 角色,对应的权限可以在 ***名称空间级别权限*** 中查看
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200107221703581.png)
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200419082825473.png)
* 点击上图中的 ***查看Token*** 按钮,如下图所示:
**此 Token 可以用来登录 Kuboard 界面**
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200107221910036.png)
![Kubernetes教程_ServiceAccount](./kuboard.assets/image-20200419083110000.png)
## 下一步

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View File

@ -14,19 +14,17 @@ meta:
## 前提
* 您已经安装了 kubernetes
* 您已经安装了 [Kuboard](/install/install-dashboard.html),版本号不低于 v1.0.6.3
* 您已经安装了 [Kuboard](/install/install-dashboard.html),版本号不低于 v1.0.9.3
## 步骤
* 以 kuboard-user 用户登录 Kuboard 界面;
参考 [获取Token访问Kuboard](/install/install-dashboard.html#获取Token)
参考 [获取Token访问Kuboard](/install/install-dashboard.html#获取Token)
* 进入 `kube-system` 名称空间页面;
* 进入 `kube-system` 名称空间页面(或任意名称空间)
* 点击 ***权限*** 按钮,进入 RBAC 权限管理页面;
* 点击 ***ClusterRole*** 按钮,进入 ClusterRole 列表页面;
* 点击左侧菜单的 ***权限*** -> ***ClusterRole*** 按钮,进入 ClusterRole 列表页面;
* 点击 ***创建 ClusterRole*** 按钮,如下图所示:
@ -39,7 +37,7 @@ meta:
| 聚合标签名 | Boolean | 否 | 如果填写,则此 ClusterRole 中的权限来自于指定标签所选中 ClusterRole 中定义权限的合集。 |
| 聚合到 ClusterRole | String | view | logs-viewer 中定义的权限将聚合到 view 这个 ClusterRole 中。 |
![image-20200305232329557](./logs.assets/image-20200305232329557.png)
![image-20200305232329557](./logs.assets/image-20200419092227402.png)
* 点击 ***保存*** 按钮,保存后在如下界面填写:
@ -50,18 +48,20 @@ meta:
| resourceNames | | 不指定,则可以访问任意 Pod 的日志 |
| verbs | get<br />create | 必须具备对 pods/log 和 pods/attach 进行 get 和 create 操作的权限 |
![image-20200305233155635](./logs.assets/image-20200305233155635.png)
![image-20200419092412412](./logs.assets/image-20200419092412412.png)
* 点击 ***保存*** 按钮,退出后,以 `kuboard-viewer` 的身份登录 Kuboard
参考 [获取Token访问Kuboard](/install/install-dashboard.html#获取Token)
参考 [获取Token访问Kuboard](/install/install-dashboard.html#获取Token)
此时,`kuboard-viewer` 将具备权限访问 Pod 的日志;
::: tip 备注
这样操作能够成功的原因是:
* 在安装 Kuboard 的 yaml 文件中,创建了 `kuboard-viewer`,并通过 ClusterRoleBinding 将其绑定到了 `view` 这个 ClusterRole这意味着 `kuboard-viewer` 具备集群级别的查看权限
* 在安装 Kuboard 的 yaml 文件中,创建了 `kuboard-viewer`,并通过 ClusterRoleBinding 将其绑定到了 `view` 这个 ClusterRole这意味着 `kuboard-viewer` 具备集群级别的查看权限,您也可以:
* [创建 ServiceAccount 并授权其访问指定的名称空间](../kuboard.html)
* [安装 OpenID Connect](/learning/k8s-advanced/sec/authenticate/install.html) 以使用自建 github / gitlab 的账号登录 Kuboard
* `view` 这个 ClusterRole 在安装 Kubernetes 时,由 kubernetes 自己初始化,其中不包括查看日志所需的权限;
* `view` 这个 ClusterRole 是一个 [聚合 ClusterRole](/learning/k8s-advanced/sec/rbac/api.html#aggregated-clusterroles),这意味着我们可以通过定义新的 ClusterRole`view` 增加权限
* 本操作中,定义的 `logs-viewer` 包含了查看日志所需要的权限,并将其聚合到了 `view` ClusterRole因此 `kuboard-viewer` 就可以查看容器组的日志了。