更新授权相关的截图
@ -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)
|
||||
|
||||
|
Before Width: | Height: | Size: 171 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 331 KiB |
|
Before Width: | Height: | Size: 218 KiB |
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 170 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 153 KiB |
|
After Width: | Height: | Size: 153 KiB |
@ -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 名称空间页面,如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
* 点击上图中的 ***权限管理*** 按钮,进入权限管理子菜单,如下图所示:
|
||||
* 点击上图左侧菜单中的 ***权限管理*** -> ***ServiceAccount*** 按钮,进入 ServiceAccount 列表页面,如下图所示:
|
||||
|
||||

|
||||
|
||||
* 点击上图中的 ***ServiceAccount*** 按钮,进入 ServiceAccount 列表页面,如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
* 点击上图中的 ***创建ServiceAccount*** 按钮,如下图所示:
|
||||
|
||||
填写 **名称** 后,保存 *ServiceAccount*
|
||||
|
||||

|
||||

|
||||
|
||||
* 完成创建后,将自动进入 ServiceAccount 详情页,如下图所示:
|
||||
|
||||
* 图中,可以看到 Kubernetes 默认为 ServiceAccount 授予的 ***集群级别权限***
|
||||
* 可以为一个 Service Account 创建多个 Secret
|
||||
* 也可以删除 Service Account 的原有 Secret
|
||||
|
||||
|
||||
> 当您使用 Service Account 作为 Kuboard / Kubernetes Dashboard 的登录方式时,这个特性就显得非常有用,您可以定期更换 ServiceAccount 的 Secret Token,以增强系统的安全性。
|
||||
|
||||

|
||||

|
||||
|
||||
* 点击上图中 ***RoleBinding*** 后的 ***添加*** 按钮,如下图所示:
|
||||
|
||||
@ -66,19 +60,35 @@ meta:
|
||||
* kind : ClusterRole
|
||||
* name : admin
|
||||
|
||||

|
||||
::: 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)
|
||||
:::
|
||||
|
||||
|
||||

|
||||
|
||||
* 点击上图中的 ***保存*** 按钮,完成后如下图所示:
|
||||
|
||||
可以观察到已经为 *admin-user* 这个 *ServiceAccount* 授予了名称空间内部的 *admin* 角色,对应的权限可以在 ***名称空间级别权限*** 中查看
|
||||
|
||||

|
||||

|
||||
|
||||
* 点击上图中的 ***查看Token*** 按钮,如下图所示:
|
||||
|
||||
**此 Token 可以用来登录 Kuboard 界面**
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## 下一步
|
||||
|
||||
|
After Width: | Height: | Size: 133 KiB |
|
After Width: | Height: | Size: 135 KiB |
@ -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 中。 |
|
||||
|
||||

|
||||

|
||||
|
||||
* 点击 ***保存*** 按钮,保存后在如下界面填写:
|
||||
|
||||
@ -50,18 +48,20 @@ meta:
|
||||
| resourceNames | | 不指定,则可以访问任意 Pod 的日志 |
|
||||
| verbs | get<br />create | 必须具备对 pods/log 和 pods/attach 进行 get 和 create 操作的权限 |
|
||||
|
||||

|
||||

|
||||
|
||||
* 点击 ***保存*** 按钮,退出后,以 `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` 就可以查看容器组的日志了。
|
||||
|
||||