运维管理
- 1: 用户管理
- 2: 租户管理
- 3: 角色管理
- 4: 配额管理
- 5: K8s集群管理
- 5.1: 多集群管理
- 5.2: 集群级资源管理
- 5.2.1: 存储类别(StorageClass)
- 5.2.2: 存储声明(PV)
- 5.2.3: 集群节点(Node)
- 5.2.4: 网络策略(NetworkPolicy)
- 6: 操作审计
1 - 用户管理
本文档介绍了如何在 KubeCube 上创建、管理用户。
准备工作
使用平台管理员账号登录 KubeCube。
新增用户
1、使用平台管理员账号登录 KubeCube 后,展开【组织管理】菜单,点击【用户管理】,进入用户管理页面。
2、点击【新增用户】,填写用户信息。
- 登录账号:
- 不能超过253个字符;
- 只能包含小写字母、数字,以及'-' 和 ‘.';
- 须以字母数字开头;
- 须以字母数字结尾;
- 全局唯一标识,不允许重复,不允许修改。
- 用户名:
- 平台内展示的用户名,默认为登录账号。
- 密码:
- 长度不得少于8位且不大于20位;
- 至少应包括字母、数字以及特殊符号中两类。
- 电话:
- 符合中国手机号规范,如188****1234;
- 选填。
- Email:
- 符合日常邮件地址规范;
- 选填。
点击【确定】,即创建该用户。
3、如果需要批量创建用户,可以点击【批量导入】-【下载模版】,填写表格内容后上传文件,即可批量创建表格内填写的用户。表格填写规范同上。
用户管理
使用平台管理员账号登录 KubeCube 后,展开【组织管理】菜单,点击【用户管理】,进入用户管理页面。
在用户管理页面,可以看到平台内的所有用户,包括每个用户的登录账号、用户名、类型、状态、上次登录IP以及上次登录时间。
- 类型:用户的登录方式,如果是使用账号密码登录,则类型为 “normal”;如果为其他登录方式,如LDAP、Github等通过第三方平台认证登录,则类型为对应的第三方平台名称。目前 KubeCube 只支持密码登录方式。
- 状态:分为启用和禁用,启用状态用户可正常登录,禁用状态用户不可登录。
同时,平台管理员可以在该界面修改用户信息,包括用户密码、用户名、电话以及 Email,规范同上。用户登录账号不支持修改。
2 - 租户管理
本文档介绍了如何在 KubeCube 上进行租户管理,并管理租户下的项目和成员。
准备工作
使用平台管理员或租户管理员账号登录 KubeCube。
租户管理
新增租户
1、使用平台管理员账号登录 KubeCube,展开【组织管理】菜单,点击【租户管理】,进入租户管理页面。
2、点击【新增租户】,填写租户信息。
- 租户名称:平台内展示的租户名。
- 租户标识:
- 长度不得少于2位且不大于32位;
- 只能包含小写字母、数字,以及中划线 ‘-’ ;
- 全局唯一标识,不允许重复,不允许修改。
租户管理
使用平台管理员账号登录 KubeCube,展开【组织管理】菜单,点击【租户管理】,进入租户管理页面,可以查看到平台下所有的租户;使用租户管理员账号登录,进入租户管理页面,可以查看到该租户管理员所管理的所有租户。
同时可以在该界面快捷添加成员、添加项目、修改租户名称。
项目管理
在租户管理页面点击上方的【项目】,切换到项目管理页面。
点击【新增项目】,即可添加项目:
- 所属租户:选择权限内的已有租户;
- 项目名称:项目的展示名称;
- 项目标识:
- 长度不得少于2位且不大于32位;
- 只能包含小写字母、数字,以及中划线 ‘-’ ;
- 全局唯一标识,不允许重复,不允许修改。
- 项目描述:对该项目的描述性语言。
添加项目成功后,也可以在该页面直接为该项目或其他项目添加项目成员。
成员管理
在租户管理页面点击上方的到【成员】,切换到成员管理页面。
点击【添加成员】,即可为指定的租户或项目添加成员。
- 所属租户:选择权限内的租户;
- 所属项目:选择所选租户下的项目,如果选择【不指定】,则为添加租户成员,否则为项目成员;
- 账号:选择平台内的用户;
- 角色:指定所选用户的角色,如果【所属项目】选择【不指定】,则角色可设置为租户管理员或普通成员;如果【所属项目】选择具体项目,则角色可设置为项目管理员或普通成员。
添加成员成功后,可以在该页面进行租户成员和项目成员的管理。同时可以在右上方,根据租户、项目、角色对成员进行过滤和搜索。
3 - 角色管理
KubeCube 的角色管理基于 Kubernetes 的 RBAC 实现,对多集群提供了统一的认证鉴权功能
内置角色
KubeCube 针对不同的层级,内置了相应的管理员角色和只有读权限的 reviewer 角色
权限\角色 | platform-admin | tenant-admin | project-admin | reviewer |
---|---|---|---|---|
集群管理 | ✓ | |||
角色管理 | ✓ | |||
角色查看 | ✓ | ✓ | ✓ | |
用户管理 | ✓ | |||
节点管理 | ✓ | |||
所有租户管理 | ✓ | |||
所有租户成员管理 | ✓ | |||
本租户管理 | ✓ | ✓ | ||
本租户成员管理 | ✓ | ✓ | ||
所有项目管理 | ✓ | |||
所有项目成员管理 | ✓ | |||
租户下项目管理 | ✓ | ✓ | ||
租户下项目成员管理 | ✓ | ✓ | ||
本项目管理 | ✓ | ✓ | ✓ | |
本项目成员管理 | ✓ | ✓ | ✓ | |
管理 namespace | ✓ | |||
管理工作负载 | ✓ | ✓ | ✓ | |
管理卷 | ✓ | ✓ | ✓ | |
管理 service | ✓ | ✓ | ✓ | |
管理 ingress | ✓ | ✓ | ✓ | |
管理 secrets | ✓ | ✓ | ✓ | |
管理 serviceaccout | ✓ | ✓ | ✓ | |
管理 subnamespaceanchor | ✓ | ✓ | ✓ | |
查看工作负载 | ✓ | ✓ | ✓ | ✓ |
查看卷 | ✓ | ✓ | ✓ | ✓ |
查看 service | ✓ | ✓ | ✓ | ✓ |
查看 ingress | ✓ | ✓ | ✓ | ✓ |
查看 secrets | ✓ | ✓ | ✓ | ✓ |
查看 serviceaccout | ✓ | ✓ | ✓ | ✓ |
查看 subnamespaceanchor | ✓ | ✓ | ✓ | ✓ |
KubeCube 使用 HNC 来实现 tenant、project 和 namespace 的层级,以及彼此之间的隔离;为了实现 namespace 层级的隔离,除 platform-admin 外所有角色,通过 subnamespaceanchor 资源来管理 namespace
管理角色
通过角色标签栏来选择角色层级,点击【添加角色】来新建自定义角色,【继承已有】会以本层级的 admin 角色为模版新建出角色,【自定义】可以自定义编辑新角色
通过勾选具体的权限项来自定义角色的权限,点击【修改】提交修改
4 - 配额管理
KubeCube 在 Kubernetes 原生的资源配额能力上进行了拓展,在租户层级即可对资源配额进行限制,在使用体验上与 Kubernetes 原生的 ResouceQuota 保持一致
KubeCube 目前支持对 nvidia gpu 进行资源配额
资源配额结构
资源配额的计算结构遵循以下约束:
- 租户下 namespace 的资源配额总和 < 租户配额
- 集群下租户的资源配额总和 < 集群的物理资源
CubeResourceQuota 是 KubeCube 对于 namespace 级别的 ResourceQuota 的上层抽象,基于 CRD 实现
Tenant 资源配额
前置要求
创建一个租户
设置租户的资源配额
选择租户,点击【调整配额】对指定集群下的租户进行资源配额的设置
在可填框中填入期望设置的资源配额,点击【确定】保存配额设置
- 【集群可分配】表示该集群剩余可分配资源
- 【租户已分配】表示该租户下所有 namespace 已分配的资源总和
创建 Namespace 并设置资源配额
前置要求
创建一个租户,在租户下创建项目
设置 namespace 的资源配额
点击右上方【租户】选择框,选择租户,点击【创建空间】创建新的 namespace 并设置资源配额,也可以点击【修改】对已创建的 namespace 的资源配额进行修改
创建 namespace 时,需要选择空间所属的集群、租户、项目,namespace 一旦创建,其所属关系不能更改。在可填框中填入期望的资源配额,点击【确定】使资源配额生效
【租户可分配】表示该 namespace 所属的租户所剩的可分配资源配额
5 - K8s集群管理
5.1 - 多集群管理
KubeCube 提供多集群管理的能力,可以基于管控集群添加或者删除集群,并对所有接管的集群提供统一的认证和鉴权入口
⚠️ 计算集群信息不允许修改,若有修改需求,请先删除计算集群再重新添加,该操作存在的一定风险,删除计算集群期间,计算集群所有资源不受管控集群管控,认证和鉴权功能暂时关闭,直到该集群被重新添加
查看集群信息
选择集群查看对应的基本信息,Node、StorageClass、NetworkPolicy 以及 PV
添加计算集群
删除计算集群
点击【删除配置】来删除计算集群,管控集群无法通过 Console 删除。删除计算集群意味着 KubeCube 控制面不再接管该集群,该集群恢复被接管前的样子,集群上运行的工作负载、服务等不会受到影响,可以通过添加该集群来重新接管
5.2 - 集群级资源管理
5.2.1 - 存储类别(StorageClass)
KubeCube 提供对 k8s StorageClass 资源的原生管理能力
查看 StorageClass
点击【集群管理】,选择需要查看的集群,点击【存储类别】,查看该集群中所有的 StorageClass,可以在右上角搜索栏中输入资源名称进行模糊匹配,点击【删除】可删除此 StorageClass
创建 StorageClass
点击【创建存储类别】来创建新的 StorageClass
5.2.2 - 存储声明(PV)
PersistentVolume 应该由集群管理员事先提供,KubeCube 对其拥有查看和删除的能力
查看 PersistentVolume
点击【集群管理】,选择需要查看的集群,点击【持久存储】来查看 PersistentVolume 详情,点击【删除】可以删除该资源
5.2.3 - 集群节点(Node)
KubeCube 支持集群管理员通过 Console 页面管理各集群的 Node,也支持集群管理员直接使用黑屏操作对 各集群 Node 进行管理
查看节点信息
点击 Node 名称来查看节点的具体信息,点击【更多】查看 Node 的所有标签,
添加节点
KubeCube 支持集群管理员通过黑屏操作来自行添加节点,也可以点击【添加节点】来使用 KubeCube 的脚本来进行节点添加
// todo:确认 master 和 node 节点的添加细节
节点操作
点击【编辑标签】来对节点的标签进行编辑
点击【禁止调度】来限制 pod 调度到该节点
点击【更多】来对节点进行更多高级操作,包括:设置节点类型、设置污点、平滑迁移等
5.2.4 - 网络策略(NetworkPolicy)
NetworkPolicy 依赖 CNI 实现,创建一个 NetworkPolicy 资源对象而没有控制器来使它生效的话,是没有任何作用的,KubeCube 默认使用 calico
查看 NetworkPolicy
点击【集群管理】,选择要操作的集群,点击【网络策略】,点击【查看详情】可以查看 NetworkPolicy 的详细描述,点击【设置】可以对 NetworkPolicy 进行修改,点击【删除】可以删除该资源
创建 NetworkPolicy
点击【创建网络策略】可以创建新的 NetworkPolicy
6 - 操作审计
本文档介绍了如何在 KubeCube 上查询和导出操作审计日志。
准备工作
使用平台管理员账号登录 KubeCube。
开启操作审计
部署好 KubeCube 后,操作审计功能默认开启。如果需要关闭或开启操作审计功能:
1、使用平台管理员账号登录 KubeCube;
2、点击页面右上角【切换到控制台】,点击任意空间,进入到控制台页面;
3、在左侧菜单栏点击【自定义资源CRD】,进入到集群级别 CRD 列表,可以点击右上方输入 “hotplug” 进行搜索,找到 “hotplugs.hotplug.kubecube.io” CRD,点击【v1】版本进入 CRD 详情页;
4、选择 common 实例,点击【设置YAML】,找到 spec.component.name=audit,将 “status” 改成 “disabled”,即关闭审计功能;改为 “enabled”,为开启审计功能。详细配置说明见 热插拔 。
5、配置 ElasticSearch:
如果需要安装内置 ElasticSearch,修改上述 common 实例,找到 spec.component.name=elasticsearch,将 “status” 改成 “enabled”,在集群内安装 ElasticSearch。
如果需要连接外部 ElasticSearch,需要修改审计服务的deployment的环境变量:
kubectl edit deploy audit -n kubecube-system
添加环境变量:AUDIT_WEBHOOK_HOST、AUDIT_WEBHOOK_INDEX、AUDIT_WEBHOOK_TYPE,如
env: - name: AUDIT_WEBHOOK_HOST value: http://elasticsearch-master.elasticsearch:9200 - name: AUDIT_WEBHOOK_INDEX value: audit - name: AUDIT_WEBHOOK_TYPE value: logs
如果同时配置了内部和外部 ElasticSearch,优先将审计日志发到外部 ElasticSearch。
查询审计日志
使用平台管理员账号登录 KubeCube 后,展开【管控运维】菜单,点击【操作审计】,进入操作审计页面。
如图所示,在该页面展示出了所有的审计日志,包括审计操作者的账号、操作的时间、IP地址、事件名称、资源、状态。同时平台管理员也可以根据账号、IP地址等进行过滤查询。
导出审计日志
在操作审计页面,对审计日志查询后,点击【导出】,即可对查询结果进行导出。导出文件格式为csv,导出的日志条数默认不超过10000条。