操作手册
创建系统管理员用户
在正确安装部署完成 BDOS Kubernets Data Platform(以下简称:KDP)平台后可使用默认初始用户dcos进行登录,创建系统管理员用户:
在【租户管理-用户管理】页面中「添加用户」。
在【租户管理-安全组管理】页面中,进入admin安全组详情,添加已成功创建用户进入admin安全组。admin安全组中用户为系统管理员。
除了使用dcos用户创建系统管理员用户外,建议其他操作使用另外系统管理员用户进行。
如您已有KDP用户可参考如下操作进行平台登录及使用。若无用户,可联系系统管理员进行用户创建。
登录
通过单点登录进行KDP系统登录验证。
若忘记密码可,点击「忘记密码」按钮,跳转至忘记密码页,输入用户名或邮箱地址,会发送一封带有设置信密码步骤的邮件到邮箱中,根据提示进行密码重置。
登录成功默认进入集群管理【集群信息】页面。
导航栏
进入云原生k8s大数据平台系统后,页面顶端导航栏显示系统logo、进入门户、登录用户信息。
应用门户
点击右上角「进入门户」按钮,可进入BDOS应用门户导航主界面,页面显示系统所有人及当前机构下已配置的应用陈列室。点击具体应用图标可进入已配置的应用路径。
点击左上角「BDOS」图标,可回到K8s大数据平台【集群信息】页面。
配置应用入口
系统管理员或机构admin角色用户可通过「配置应用入口」按钮,进入【应用入口管理】页面。系统管理员可对系统所有人及任意机构进行应用入口的配置管理,机构admin角色用户可对当前机构下用户可进入的应用入口进行配置管理。用户进入应用门户时,看到的是系统所有人及当前机构下配置应用入口的总和,因此同一应用不需要重复添加。
有权限用户可对应用门户入口进行添加、修改、删除操作。
添加
在【应用中心管理】页面,选择机构后,点击「添加快速入口」按钮,页面弹出创建快速入口弹出框,为所选的某个机构或所有人添加应用的快速入口,适用于存在具体应用路径的跳转。实际用户查看的应用入口为,给所有人的配置以及指定安全组配置之和,请勿重复添加。
下面以创建KDP应用入口为例。
- 填写图标在应用门户展示的基本参数。
- 其中背景颜色、Logo若不填写会展示默认值。背景颜色示例:rgba(115, 214, 255, 0.26)。
- 支持通过「顺序权重」来控制应用入口在门户展示顺序,顺序权重的值越大,快速入口展示的顺序越靠前。
默认颜色及控制释义:
- 根据应用类型填写跳转参数
- 自定义链接:直接跳转到该指定链接
- 集群应用:可以选择不同安全组下的系统应用或者自定义应用。
- 自定义应用:安装在机构NS下的自定义springboot/tomcat/docker应用,默认会使用该应用详情配置中的settings.lables.BDOS_APP_HOMEPAGE这个字段值作为入口的URL。
- 系统应用:一般创建安装在admin组下的 bdos-online-web、bdos-etl等应用,需要勾选「使用集群配置地址」,按需勾选启用单点登录。
- 集成工具(系统/自定义):安装在机构NS下的 Hue/Superset/Jupyterlab/Mlflow 等市场应用,可以选择预设好的自定义模版,需要输入自定义参数
注:
- 使用集群配置地址:开启使用集群配置地址后,会取PAAS平台中的集群配置管理数据中对应的应用Domain作为入口的URL,一般情况下,当前配置的应用属于admin组下的系统应用才需要开启。默认不开启时,则会取该应用settings.lables.BDOS_APP_HOMEPAGE这个字段值作为入口的URL。
- Domain的拼接规则为
{ {appId}}-domain
, 但存在集群配置中的key不对应的情况,此时可以在自定义的参数中加上对应的“domainKey”
- Domain的拼接规则为
- 启用单点登录说明:开启后,会使用 cross secret 创建一个jwt token,拼接在跳转地址的参数中,一般像 bdos-etl、bdos-data-service 这种系统应用需要勾选。
- 自定义参数数据:目前会提供 Hue/Superset、Jupyterlab、Mlflow 等三类市场应用的参数模版,可在页面上根据提示进行填写。
填写完成,BDOS应用中心效果如下图所示:
修改
在【应用中心管理】页面,点击具体应用行中的「修改」按钮,页面弹出修改快速入口弹出框,填写内容同「添加」。可修改「是否启用」控制入口是否显示。
删除
在【应用中心管理】页面,点击具体应用行中的「修改」按钮,弹出确认是否删除弹出框,点击「确定」后删除该应用的应用中心入口。
用户信息
点击用户名称或头像,即可显示用户个人信息,包括电子邮箱地址,创建时间,验证类型,所属安全组,修改密码以及注销。
点击修改密码,可自行修改密码信息。如果忘记密码无法登录,可在登录页面输入邮箱,发送重置密码邮件,或者请管理员进行重置。
点击注销,即可退出登录,返回登录页。
集群管理
通过集群管理界面,以可视化的方式,统一查看集群整体、各个节点、系统组件的资源分配、使用情况。
集群信息
显示集群概况、集群资源使用情况、容器运行情况统计模块。点击右上角的「时间区间」,可控制本页面内所有统计数据的分析时长。支持时间区间的快捷选择,也支持用户自定义起止时间。页面中具体数值计算说明详见手册中【核心指标说明】部分。
点击右上角「刷新」按钮,可手动刷新整个页面数据。
点击右上角「集群配置」按钮,跳转至系统【集群配置管理】页面。
目前系统仅支持唯一集群运维管理,后续即将推出多集群管理。
注
- 在Kubernetes中,Pod是最小的调度单位,资源管理和调度是围绕Pod展开的。Kubernetes管理的基本资源有四类:CPU、内存、临时存储、扩展资源(如GPU)。在向集群提交Pod时,Pod会以两种方式为Pod中的每一个容器申请资源:一种方式是Requests,即需要的保底的资源;另一种方式是Limits,即使用资源的上限。根据Requests和Limits组合的不同,对资源的使用方式也是不同的。Kubernetes收到提交的Pod的资源配置后,通过调度算法,选出一个合适的节点,并把该节点的名称绑定在这个Pod的声明中,从而完成一次Pod的调度。
- PVC:持久卷申领(Persistent Volume Claim,简称PVC)是Kubernetes中用于请求持久卷(Persistent Volume,简称PV)的机制。持久卷是Kubernetes中用于存储数据的一种抽象概念,它可以是云存储、网络存储或本地存储。持久卷可以被多个Pod使用,并且可以在Pod迁移或重启时保留数据。在Kubernetes中,Pod可以通过声明式方式申请使用持久卷,这个过程被称为“持久卷申领”。“集群中持久卷申领次数”指的是Kubernetes集群中所有Pod对持久卷的申领次数的总和。也就是说,当一个Pod需要使用持久卷时,它会向Kubernetes的控制平面发出请求,如果没有可用的持久卷,Kubernetes会自动创建一个并分配给该Pod。因此,每一次持久卷申领都会增加这个指标的值。这个指标可以用来评估集群中持久卷的使用情况和负载情况,如果这个值很高,说明持久卷的使用非常频繁,需要注意存储资源的分配和管理。另外,持久卷申领次数也可以作为一种性能指标,用来评估Kubernetes集群的性能和扩展能力。
集群概况
集群概况部分,展示集群寿命、所有节点中运行Pod数量列表、所有Pod运行状态、所有容器运行状态。
其中”命名空间”为K8s集群中资源相互隔离的组,”PVC数”表示持久卷申领数量,容器”循环重启”数是过去五分钟重启超过一次的容器数量。
三个曲线图,分辨展示时间区间内,集群CPU使用率、内存使用率、磁盘使用率变化趋势。
点击模块右上角「Grafana集群概况」按钮,新开浏览器Tab页面,跳转Grafana BDOS系统核心指标监控大屏看板。在集群概况模块可查看集群监控更多指标数据。
集群资源情况
集群资源情况部分,展示集群的CPU请求率、内存请求率、CPU限制率、内存限制率四个数据,总宏观上了解集群资源是否足够。根据异常数据,可在【集群管理-资源分配】页面查看具体应用运行情况。
点击资源使用数值,页面跳转至集群【资源分配】页,可通过安全组、节点、容器不同维度查看资源使用情况。
- CPU请求率 = 所有负载的CPU request 之和 ÷ 集群可用CPU总量 %
- 内存请求率 = 所有负载的内存 request 之和 ÷ 集群可用内存总量 %
- CPU限制率 = 所有负载的CPU limit 之和 ÷ 集群可用CPU总量 %
- 内存限制率 = 所有负载的内存 limit 之和 ÷ 集群可用内存总量 %
一般来说,如果容器的request都是比较合理的设置,整体请求率的范围应该保证:1. 新的容器比较容易拿到资源启动。 2. 单个节点失效后需要迁移的负载不会造成整体请求率的太大波动。实际中一般60%-70%比较正常,超过80%有可能会影响新的负载的发布,或者在节点失效后无法进行负载迁移。
对于CPU限制率,一般有可能超过100%,因为这是节点上所有应用容器峰值的和。所以在应用的行为正常时,CPU限制率超过100%是允许的,如果所有应用都同时达到峰值,那么有些应用会拿不到足够的CPU share,响应速度可能会减慢。
对于内存限制率,一般在超过100%的时候需要比较注意。因为如果节点上所有应用同时达到峰值,就会有应用容器会被OOM kill,系统性能会受到比较大的影响。
用户可点击具体数值,跳转至【资源分配】页面查看集群资源使用具体情况。
点击模块右上角「Grafana集群资源」按钮,新开浏览器Tab页面,跳转Grafana BDOS集群资源计算监控大屏看板,查看更多详细指标。
容器运行状态统计
本部分展示在时间区间内运行的按容器名称聚合的容器列表,默认按重启次数倒序排序,方便发现有状态异常的容器。
页面支持通过安全组、负载名称对列表数据进行筛选,支持通过可用性周期、时间间隔来计算可用性、错误预算数据。在输入框失去焦点后自动进行查询。
- 可用性周期: 可用性指标的统计周期,例如统计近1天的系统可用性。可用性由应用指定的liveness check来判断
- 最长运行时间:同名容器中从最长运行时间
- 可用性:在可用性周期中该容器处于可用的状态的时间的比例
点击模块右上角「Grafana负载可用性统计」按钮,新开浏览器Tab页面,跳转Grafana BDOS系统核心指标监控大屏看板,微服务可用性模块。
集群节点
节点是指集群中由K8s系统管理的虚拟机或者物理机。K8s节点包括以下两种类型:
一、master服务端(主控节点)
- 集群的大脑,负责管理所有节点
- 负责调度Pod在哪些节点运行
- 负责控制集群运行过程中的所有状态
包含组件:
- kube-apiserver(rest api接口,集群控制的入口)
- kube-controller-manger(所有资源对象的自动化控制中心)
- kube-scheduler(Pod资源对象的调度)
二、node客户端(工作节点)
- 负责管理所有容器(container)
- 负责监控/上报所有Pod的运行状态
包含组件:
- kubelet(节点上容器的创建、删除、启停等任务,与Master节点通信)
- kube-proxy(k8s服务的通信及负载均衡服务)
- container runtime(负责容器的基础管理服务,接收kubelet组件的指令)
在集群节点界面,可查看集群中所有节点列表。支持按主机名称、主机类型、标签进行筛选。支持导出节点列表。
鼠标悬浮到标签列,悬浮框中显示当前节点的非系统标签,双击标签可直接搜索包含当前标签的节点列表,点击「编辑标签」按钮支持增删节点标签。有的负载只能在有指定标签的节点上运行(通过selector),此时添加或删除标签可以改变该节点上可以运行的负载。
支持对开放调度的节点进行「隔离」、「排空」操作,后续新增Pod不会在该节点运行,「隔离」操作不影响已有的Pod。
停止调度后支持「启用调度」操作。
节点详情
节点详情页面,展示主机IP、公网IP、节点创建时间、节点标签以及当前节点资源使用情况。
Pod是Kubernetes最基本的操作单元,一个Pod中可以包含一个或多个紧密相关的容器,一个Pod可以被一个容器化的环境看作应用层的逻辑宿主机。一个Pod中的多个容器应用通常是紧密耦合的,Pod在Node上被创建、启动或者销毁。每个Pod里运行着一个特殊的被称之为Pause的容器,其他容器则为业务容器,这些业务容器共享Pause容器的网络栈和Volume挂载卷,因此它们之间通信和数据交换更为高效。在设计时我们可以充分利用这一特性,将一组密切相关的服务进程放入同一个Pod中。
主动节点会以Pod为单位 将其调度至工作节点上。
节点监控指标说明:
- CPU/内存总量 是K8s可分配(Allocatable)该节点的资源总量,这个数值一般是该节点上的物理资源(例如32核/128GB)减去系统服务(主要是操作系统和Kubernetes服务加上一些buffer)之后kublet可用于运行容器的数量。
- CPU/内存使用量 是该节点上运行所有容器的实际使用资源之和。如果这个数值小于request太多,说明该容器不需要其申请的那么多资源,可以适当将request和limit调小。
- CPU/内存使用率 使用量/可分配量%
- CPU/内存请求量 是该节点上运行所有容器的请求量之和。CPU和内存request是Pod启动必须要求的资源限额,如果节点上现存可分配资源小于这两个request之一,该节点将无法运行这个Pod。如果系统中所有节点现存可分配资源都小于request,那么该Pod将无法启动。
- CPU/内存请求率 请求量/可分配量%
- CPU/内存限制量 是该节点上运行所有容器的限制量之和。CPU和内存limit是容器运行最大可要求的资源限额,如果容器的CPU请求超过limit,系统将不会再分配多的CPU使用,容器运行将会减慢或者无法响应;如果容器的内存请求超过limit,系统将OOM杀掉该容器。
- CPU/内存限制率 限制量/可分配量%
注:
CPU/内存的请求量、限制量都是由容器配置指定,一个Pod的CPU/内存的请求量、限制量是其所有容器配置值的和。在分配Pod到节点时,K8s是考虑Pod的整体资源需求,但是在分配/限制具体容器资源时,是针对每个容器来控制的。
- 运行容器列表
- WSS 一个监控指标,为memory.usage_in_bytes(RSS + Cache)与memory.stat total_inactive_file二者的差值
- RSS Resident Set Size 实际使用的物理内存(包含与其他进程共享占用的内存) ,多个进程加载同一个共享库使用的内存只计算一次
- 重启 该Pod在页面顶部指定的“时间区间”中重启的次数
- 容器CPU使用率 容器CPU使用量之和 ÷ 容器CPU请求之和 %
- 容器内存使用率 容器内存使用量之和 ÷ 容器内存请求之和 %
系统组件状态
系统组件状态页面,展示当前集群内所有系统下组件安装及在安全组下运行情况。点击具体系统或应用名称,跳转至其主页,可查看系统包含应用列表、应用运行时负载列表、应用安装情况。
“未安装”状态应用,部分可在【应用市场】进行「安装」操作。
支持通过系统名称、系统类型、系统应用状态、安全组进行具体系统或者应用检索。 支持一键展开或收起所有系统应用。
应用状态包括 “未安装”、”未启动”、”正常”、”异常”四类。应用启动后,Pod状态为”运行中”、”成功”、”等待中”、”失败”四类。
注:
- 应用状态”异常”,指应用下存在Pod状态为”等待中”或”失败”的Pod。
- 系统状态”异常”,指系统下存在应用状态为”异常”的应用;系统的期望实例、运行实例是当前系统下应用的期望实例、运行实例的总和。
- 期望实例、运行实例,是指应用中的Pod数量。期望实例数一般为应用配置中Replica数值。
资源分配
资源分配页面包含四部分:集群资源情况、安全组资源统计、节点资源统计、容器资源统计。从四个方面来反应集群资源使用情况。集群资源情况同【集群信息】页面部分,不再赘述。
安全组资源统计
以安全组为单位查看各个安全组资源使用情况。
- CPU请求率 = 当前安全组下 容器CPU使用量之和 ÷ 容器CPU请求之和 %
- CPU限制率 = 当前安全组下 容器CPU使用量之和 ÷ 容器CPU限制之和 %
- 内存请求率 = 当前安全组下 容器内存使用量之和 ÷ 容器内存请求之和 %
- 内存限制率 = 当前安全组下 容器内存使用量之和 ÷ 容器内存限制之和 %
支持按数据表所有内容排序,可摘选指定安全组。
我们可以用一个例子来简单理解请求和限制数额:
假设体育馆一共有24片羽毛球场地(集群allocatable: 24),机构A 订了2片场地(requests: 2),但跟球馆说如果来的人多了我们到时候再多开2个场(limits: 4);球馆这个时候也比较空闲,就多预留了2个场地(requests ≠ limits,QoS:Burstable)。
情境:
- 理想的情况:正常来了2个场地的人,requests%: 100%,limits%: 50%
- 闲置的情况:机构A中有几个部门加班,只来了1个场地的人,requests%: 50%,limits%: 25%
- 爆满的情况:机构A负责人布置了锻炼打卡,一下去了4个场地的人,request%: 200%, limits%: 100%
我们从监控面板就是要识别出来“闲置”和“爆满”的情况,前者要“退订”(减少requests),后者要“加订”(增大limits)
接着上面的例子,我们来看下系统自动驱逐的顺序。机构B在同一天预定了22片场地(requests = limit : 22,QoS:Guaranteed),还有个公司C场地也不订(全部requests和limits均不配置,QoS: BestEfforts)临时来打的,球馆看现在空闲让他们先打,一旦订场的机构都来了场地不够了,就会优先驱逐BestEfforts机构C,其次驱逐Busrtable机构A,最后驱逐Guaranteed机构B。
节点资源统计
展示所有节点的状态及资源消耗情况。节点监控指标包括:
- CPU/内存总量 是K8s可分配(Allocatable)该节点的资源总量,这个数值一般是该节点上的物理资源(例如32核/128GB)减去系统服务(主要是操作系统和Kubernetes服务加上一些buffer)之后kublet可用于运行容器的数量。
- CPU/内存使用量 是该节点上运行所有容器的实际使用资源之和。如果这个数值小于request太多,说明该容器不需要其申请的那么多资源,可以适当将request和limit调小。
- CPU/内存使用率 使用量/可分配量%
- CPU/内存请求量 是该节点上运行所有容器的请求量之和。CPU和内存request是Pod启动必须要求的资源限额,如果节点上现存可分配资源小于这两个request之一,该节点将无法运行这个Pod。如果系统中所有节点现存可分配资源都小于request,那么该Pod将无法启动。
- CPU/内存请求率 请求量/可分配量%
- CPU/内存限制量 是该节点上运行所有容器的限制量之和。CPU和内存limit是容器运行最大可要求的资源限额,如果容器的CPU请求超过limit,系统将不会再分配多的CPU使用,容器运行将会减慢或者无法响应;如果容器的内存请求超过limit,系统将OOM杀掉该容器。
- CPU/内存限制率 限制量/可分配量%
注:
CPU/内存的请求量、限制量都是由容器配置指定,一个Pod的CPU/内存的请求量、限制量是其所有容器配置值的和。在分配Pod到节点时,K8s是考虑Pod的整体资源需求,但是在分配/限制具体容器资源时,是针对每个容器来控制的。
容器资源统计
展示集群所有容器的运行情况,同名容器进行聚合展示。支持按安全组进行筛选,查询安全组下所有容器。
应用管理
系统应用是由一个或多个应用组成的集合,一个应用包含一个或多个应用组件,这些应用以组的形式来启动和停止,应用运行过程中遇到问题退出时会自动重启。
自定义应用提供标准化的分发流程,用户可以按照标准化的发布方式自助进行应用发布。
应用均完全以容器的方式运行在统一的底层容器编排框架K8s之上,通过KDP页面提供统一的应用管理入口。主要功能包括:
- 所有应用可以一键安装,用户可通过Docker/Tomcat/Springboot方式自主安装和发布应用;
- 应用配置全部通过Web UI方式实现;
- 应用实例由集群动态分配资源,无须绑定服务器;
- 应用负载均衡由系统自动实现,无须配置;
- 应用的运维由系统自动实现,包括自动弹性扩容、迁移和重启。
不同系统应用使用范围,系统应用操作权限不同:
- 集群全员的系统应用:系统管理员可在admin安全组下进行安装及更新等操作;
- 指定安全组的系统应用:系统管理员、机构admin角色、机构devops角色可在指定安全组下安装及更新等操作;
- 指定安全组或用户的系统应用:系统管理员、机构admin角色、机构devops角色可进行指定安全组或用户安装及更新等操作。机构common角色可进行当前用户下安装及更新等操作。
应用市场
用户可通过应用市场界面查看平台提供用户可安装的系统应用,并根据业务需要选择具体应用进行一键安装启动。目前平台已集成的用户可安装系统应用有:HDFS、Hive、Hue、MLFlow、AutoML、Superset等开源大数据组件。如有其他需求可联系智领云进行其他大数据组件的扩展。
支持查看应用的启动状态,悬浮「详情」按钮可查看已安装应用的安全组。
应用根据其特性规定使用范围有如下三种:
- 集群全员 由系统管理员安装在admin安全组下,应用安装后集群所有用户可使用;
- 指定安全组 由系统管理员或机构admin/devops角色用户安装在指定安全组下,应用安装过的安全组中所有用户可使用;
- 指定安全组或用户 系统管理员、机构admin/devops角色用户可安装应用在指定安全组或指定用户下,应用安装过的安全组中所有用户或指定用户可使用;机构common角色用户可安装应用在当前个人用户下,当前用户可单独使用;
在应用市场暂时无法看到安装在指定用户下的系统应用「启动状态」,指定用户下可重复安装,最新安装会覆盖上次安装。
在应用列表点击具体应用名称,跳转至【应用主页】。【应用主页】介绍具体可查看【核心组件】模块中【应用主页】描述。
在应用列表点击安装,即可进入应用配置安装页面。
- 设置该应用安装的集群、安全组或用户。
- 常用配置参数,若有则显示BDOS定义的常用应用配置项,用户可填写应用的相关配置参数。不同的应用类型所需的参数略有不同。
- 高级配置模式,显示应用配置模板中的完整应用配置,用户可修改Json格式配置模板,
填写参数配置后,点击「确认安装」按钮进入安装流程,安装并在K8s集群中启动应用。页面实时显示安装进度日志信息。
注:
填写常用配置参数后,在安装时,会自动获取value值填充到高级应用配置中。 如直接在高级配置中撰写数值,则安装时不会回写入常用配置参数,重启应用时,仍看到常用配置参数中value为默认数据而非高级配置模式填写数据。
安装完成后,即可在【系统应用】页面中查看到该应用实例,也可在【系统组件状态】页面中看到该系统应用的安装运行情况。
系统应用
展示系统应用安装后的应用实例列表信息。
支持通过应用实例名称、安全组、应用实例状态、所属系统、系统类型进行筛选、列表数据导出。
点击具体实例名称,页面跳转进入【系统应用实例主页】。点击具体安全组名称,页面跳转进入【安全组主页】。点击所属系统名称,页面跳转进入【系统主页】。
系统应用实例状态有以下四类:
- 执行成功运行中 安装、更新或启动操作执行成功,应用实例处于running状态;
- 执行失败异常 安装、更新、启动、停止、卸载操作执行失败,应用实例处于abnormal状态;
- 未启动 已安装的应用实例成功停止后,处于notRunning状态;
- 执行中 安装、更新、启动、停止、卸载操作执行中;
支持对运行中、异常、执行中的应用实例进行「更新」、「停止」、「卸载」操作。
支持对未启动应用实例进行「启动」、「卸载」操作。
支持对所有应用实例进行查看「操作记录」,进行历史配置「配置比对」。
系统应用实例主页
用户可查看系统应用实例的具体信息及运行情况。页面显示当前应用实例下运行的应用负载列表、应用Pod列表、应用组件信息。
应用组件包括
- 网络
- Service是一种用于定义一组Pod的网络抽象,以便其他Pod或外部用户能够访问它们的方式。可定义服务端口、指定访问协议、定义选择器、指定负载均衡方式
- Ingress是一种用于管理集群内服务对外暴露的方法,它提供了一种将外部流量路由到集群内部不同服务的机制。可定义服务路由规则、实现负载均衡、实现TLS加密。
- 配置
- ConfigMap是一种用于管理应用程序配置数据的对象,它可以将配置数据从应用程序代码中分离出来,使得应用程序代码与配置数据分离,从而提高了应用程序的可维护性和可扩展性。可提供应用程序的配置数据、为应用程序提供环境变量、为应用程序提供配置文件。
- Secret是一种用于存储敏感信息的对象,例如密码、API密钥等。与ConfigMap相似,Secret也可以将敏感信息从应用程序代码中分离出来,从而提高应用程序的可维护性和可扩展性。可提供应用程序所需的敏感信息、为应用程序提供环境变量、为应用程序提供TLS证书。
- 存储
- PersistentVolumeClaim(PVC)是一种用于声明应用程序所需的持久化存储资源的对象。PVC提供了一种抽象层,使得应用程序可以通过声明自己需要的存储资源来获取持久化存储,而无需关心存储的实际来源和实现方式。PVC通常需要与Pod的volumes配置项一起使用,以将持久化存储资源映射到应用程序的容器中。
- 访问控制
- ServiceAccount是一种用于为Pod和其内部的容器提供身份验证和授权机制的对象。每个ServiceAccount都有一个与之关联的Token,可以用于与Kubernetes API Server进行通信,以获取和修改集群中的资源。ServiceAccount可以控制Pod的访问权限,从而实现了对集群资源的访问控制。
- ClusterRole是一种用于定义集群范围内的权限的对象。ClusterRole可以控制对Kubernetes API Server上的资源的访问权限,可以为集群中的所有命名空间中的所有资源提供全局访问权限。ClusterRole通常被授权给ServiceAccount,以允许它们访问集群中的资源。ClusterRole也可以与RoleBinding或ClusterRoleBinding对象一起使用,以将其权限应用到相应的用户或ServiceAccount。
- ClusterRoleBinding是一种用于将ClusterRole与用户、服务账号或组关联起来的对象。它允许在整个集群中授予某些用户或服务账号访问权限,以执行与集群范围相关的操作。通过ClusterRoleBinding,管理员可以授予某个用户或服务账号对整个集群的资源进行访问和操作的权限。
- Role是一种用于定义在单个命名空间内资源访问权限的对象。Role定义了一组规则,这些规则可以授予或拒绝用户或服务账号对指定命名空间中资源的访问权限。Role通常被授权给ServiceAccount,以允许它们访问命名空间中的资源。
- RoleBinding是一种用于将Role与用户、服务账号或组关联起来的对象。它允许在单个命名空间中授予某些用户或服务账号访问权限,以执行与命名空间范围相关的操作。通过RoleBinding,管理员可以授予某个用户或服务账号对指定命名空间中的资源进行访问和操作的权限。
更新及启动
用户可对运行中、异常、执行中的系统应用实例进行「更新」操作,可对未启动应用实例进行「启动」操作。点击操作按钮后,页面弹出修改配置抽屉,展示当前运行基础信息及配置数据。点击「确认」按钮,平台开始执行操作,页面展示操作实时日志记录。
更新:通过更新后的配置信息创建新的Pod逐步更新 Pod 实例,零停机进行实例更新。
启动:立刻启动已实例化的配置信息,生成运行中的应用实例。
停止
用户可对运行中、异常、执行中的系统应用实例进行「停止」操作,停止运行中的应用实例,保留实例化的配置信息。点击「停止」按钮后,弹出是否停止二次确认框。
卸载
用户可对所有状态下的系统应用实例进行「卸载」操作,停止运行中的应用实例,并删除实例化的配置信息。点击「卸载」按钮后,弹出是否卸载二次确认框,输入应用实例名称后进行卸载。
查看YAML
用户可对应用实例中的应用负载、应用Pod、应用组件查看其YAML信息。点击「查看YAML」按钮,抽屉显示YAML文件信息,支持一键复制所有内容。
异常排查
用户点击应用实例状态后的「状态信息」按钮,可查看具体状态数据,发现异常原因。帮助排查问题。
自定义应用
由于应用市场能集成的应用有限,无法保证满足所有用户的需求,通过自定义的方式进行应用安装,可满足用户个性化要求。
自定义应用列表
- 已安装应用
安装完成的自定义应用,仍未启动,仅在集群上进行了部署安装,可以在自定义应用管理中看到安装的的应用。点击「启用」按钮,可运行已安装的任意版本应用。点击「下载」按钮,可下载Tomcat/SpringBoot应用安装时上传的代码包。
- 运行中应用
启动了的自定义应用可在列表中查看,支持对自定义应用的版本控制,每次修改可安装后续版本应用。随时进行版本比对。删除应用将删除应用实例中所有数据并释放资源。
点击具体自定义应用名称,可跳转进入【自定义应用主页】。
自定义应用主页
应用实例详细信息界面右上角也可对应用进行重启,修改配置,版本比对和快捷方式等操作,不再赘述。
- 应用实例
显示目前正在运行中的应用Pod信息,包括应用Pod ID,主机IP和端口,应用Pod健康状态,运行状态,容器日志,更新时间。支持重启应用Pod。鼠标悬浮在容器名称上时浮出当前容器运行情况,显示容器名称、容器ID、容器状态、最新日志及历史日志。
若Docker image类型应用,应用镜像没有正确拉取下来,在容器浮窗点击「最新日志」会有”K8S查询失败”报错。
查看容器最新日志,支持日志记录下载为.log日志文件。
容器历史日志,页面跳转至【日志记录-日志查看】页面。
- 配置信息
配置信息里包含了应用创建时的信息,包括服务信息,容器日志目录,通用配置,环境变量以及应用默认主页等。
- 服务:应用具体的服务信息,包括配置文件,存储路径,containerImage,containerRuntime,cpu,disk,id,实例个数等等。
- 容器日志:显示应用容器日志生成目录、日志名称、日志类型。
- 通用配置:显示应用运行CPU/MEM资源配置以及运行实例数。
- 环境变量:根据具体的需要定义一些环境变量,例如:在程序中需要使用的其他应用的链接等。
- 默认主页:应用安装时,网络配置中勾选负载均衡后,系统自动生成应用主页:BDOS_APP_HOMEPAGE
自定义应用安装
平台支持用户通过【自定义应用安装】的界面配置方式简化应用发布流程,发布应用。目前自定义安装提供三种类型:安装Docker应用,安装Tomcat应用,安装Spring Boot应用。
安装Docker应用
通过配置发布应用,有丰富的配置选择和自定义配置。
- 基本配置
选择应用所在的安全组,选择是否全新安装。如果为全新安装,则可给应用定义名称。如非全新安装,则下拉选择应用名称,系统会根据该应用之前的版本信息来确定当前安装应用的版本,勾选自增主版本,则系统会将应用设为下一个主版本。
其中,右上角的专家模式支持用户通过直接编写json语句,修改内容,进行安装。该模式下,配置信息不会同步到标准填写界面中更新。
- 安装模式
- 通过DockerFile安装docker应用
系统支持用户通过撰写dockerfile来进行应用安装。适合场景:发布复杂的应用。
完全匹配Dockerfile语法模式,日常应用发布以及应用更新都可以通过该配置进行。
Dockerfile是一个包含用于组合境像的命令的文本文档。可以使用在命令行中调用任何命令。Docker通过读取Dockerfile中的指令自动生成境像。
系统支持校验用户填写的Dockerfile,帮助用户判断Dockerfile的语法问题。校验完成后,下方会提示是否校验成功。可点击详情查看具体提示,是否需要针对语句进行修改,并支持再次校验。
在Dockerfile语法中需要上传本地文件资源时,比如ADD、COPY此类本地文件添加到容器中的语法模式,就可以通过上传资源文件到该功能界面,默认上传地址就是Dockerfile本地环境,只需要直接在Dockerfile中ADD或COPY文件即可。
- 通过Image安装docker应用
系统支持用户通过指定在线镜像地址来进行应用安装。 适合场景:适合简单单体应用运行。
- 参数设置
该部分指导用户对应用的具体配置进行填写,包含容器日志、网络配置、通用配置、挂载卷配置、环境变量、标签配置。基本涵盖了所有配置点,无需用户自己编程打包,界面填写即可使用。并且支持,非全新安装的应用在修改配置时,可随时恢复到上次安装使用的配置。
① 容器日志
该配置定义容器日志生成目录,可根据应用不同的日志输出目录进行修改。但日志的主目录必须为/var/log,平台才可识别,统一管理。
② 网络配置
目前平台支持两种常用Docker网络模式:Bridge网络模式和Host网络模式。系统支持用户根据具体需要进行配置选择。
- 负载均衡:配置有两个作用,其一是对多实例应用进行负载均衡访问和应用高可用,其二是通过服务发现提供一个外部环境访问的代理地址。
- 监控端口:若端口已暴露监控样本数据,并支持以API接口拉取的方式获取监控样本数据可勾选「是否监控」项,填写监控路径。应用启用后,可使用该路径获取监控数据。例如:可使用Prometheus监控应用样本数据。
网络配置说明:
(1)container/bridge: 在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。bridge模式是docker的默认网络模式,实际是在iptables做了DNAT规则,实现端口转发功能。因此,container/bridge网络需要配置portMapping。
(2)Host: 容器和宿主机共享Network namespace,将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
(3)应用发布后默认生成Virtual IP。
容器内部的IP地址是容器应用所在宿主机上的一个虚拟网段,相同宿主机上部署的容器之间可以通过该虚拟网段的地址相互通信,同容器共享生命周期。每个宿主机上的容器可以暴露多个端口,能够映射到宿主机的相应随机端口上对外暴露。VIP方案就是提供这些对外端口以及宿主机以及所部属容器之间的一个负载均衡映射关系方案,可以支持集群内不同宿主机上容器应用之间的相互访问。VIP是KDP平台内提供的一个集群内东西向负载均衡解决方案,在整个集群内部、容器应用之间可以通过分配给应用的VIP地址进行相互之间的通信。例如,开发自定义应用需要访问其他应用时,可通过将其他应用的访问地址vip配置在代码中,或者环境变量中,这样可以实现:即便节点出现故障,应用漂移至其他节点时,VIP地址不会变化,从而保证无需修改代码,仍能正常访问。原理可参考下图。VIP仅为集群内部通信使用的域名地址。如果集群外部需要访问应用,需要通过勾选负载均衡,生成一个外部环境可访问的代理地址。
③ 通用配置:
定义应用运行资源配置以及运行实例数。配置最小CPU为0.1核,最小内存为128MB,最小实例为1个。若用户填写数值小于最小设定则默认使用最小数值。
④ 挂载卷配置:
Docker容器数据卷是容器在运行过程中持久化数据的一种方式,卷是目录或文件,目的就是数据持久化,完全独立于容器的生命周期。如设置了挂载卷,即时在容器删除时,也不会删除其挂载的数据卷,从而实现数据的持久化存储。用户可根据需要配置具体的路径以及磁盘大小,最小磁盘为1Mi。挂载卷仅支持读写模式(RW)。
⑤ 环境变量:
配置Docker容器过程中,可根据需要从界面添加环境变量。
⑥ 标签配置:
支持配置应用标签。
安装Tomcat应用
针对常用的单体Java应用,可以通过直接上传相关war包(系统已集成Tomcat容器环境,相关war包可直接上传)选择不同版本Tomcat运行。
- Tomcat-version:默认集成了tomcat(8.5、9.0)两个版本。
- Load-balance:定义是否开启负载均衡配置。
- Sticky-session:定义是否开启会话保持配置。
安装Spring Boot应用
针对Java应用,可以通过直接上传Spring Boot框架的Jar包运行。其余定义与上文类似,不再赘述。
应用负载
展示集群所有运行中的类型为Deployment、StatefulSet、DaemonSet的应用负载,包括系统应用和自定义应用。展示应用负载的基本信息以及资源使用情况,可通过产品手册中【核心指标说明】模块查看相应资源使用计算方式。可通过负载ID、安全组、负载类型、系统名称、系统类型、负载状态对列表数据进行筛选。
注
- 系统应用负载存在所属系统、所属应用,自定义应用无此概念;
- 存在部分系统应用负载,无法显示所属应用、所属系统情况,主要原因可能是当前应用实例状态不正常,导致关联资源显示不全;也可能是部分应用关联数据缺失导致。
支持根据筛选条件导出负载列表的csv文件。
点击具体安全组名称,跳转至【安全组主页】。点击具体系统名称,跳转至【系统主页】。
点击具体应用负载名称,页面跳转至【应用负载主页】。
应用负载主页
用户可查看应用负载基本信息以及当前负载下所有应用Pod列表及其运行指标。
重启
支持重启负载类型为Deployment的应用负载。点击「重启」按钮,弹出是否重启二次确认框。
设置副本
支持为负载类型为Deployment、StatefulSet的应用负载临时设置副本数,设置应用负载的replicas数量,并重启当前负载。当前的设置仅暂时调整应用负载的副本数,应用负载滚动更新后恢复成应用实例中配置的副本数。
注
- 系统开放了为所有负载类型为Deployment、StatefulSet的应用负载临时设置副本数操作,但实际情况中可能有些应用为数据库、有些在进行实时数据处理、有些存在特定硬件要求而不可随意调整。在面对设置副本操作时,需要对具体需求进行详细的分析和评估,以找到最佳的解决方案。不可随意调整replica数量举例:
- onelogin:单点登录,仅支持1个replica,多个可能不同实例间数据未得到正确地共享和同步,造成会话丢失或不一致问题;
- Hdfs-datanode、Hdfs-namenode:对运行的节点硬件有一定要求。应用Pod存在节点选择器,若扩展节点需要新增节点标签。
删除
支持删除应用负载,删除操作将停止其下所有应用Pod,并在K8s中删除此workload,删除后相应应用实例会通过控制循环机制,默认在5分钟内重新创建出新的应用负载。点击「删除」按钮,弹出是否删除二次确认框。
异常排查
用户点击应用负载状态后的「状态信息」按钮,可查看具体状态数据,发现异常原因。帮助排查问题。
应用Pod
展示集群中所有运行中的应用Pod,显示应用Pod运行状态、创建时间、其中容器状态、重启次数、所属应用负载、运行所在节点、服务质量类型、运行资源使用情况。
支持通过应用Pod名称、安全组、状态、节点、服务质量进行筛选及列表数据导出。
用户点击具体安全组名称、应用负载名称、节点名称可跳转对应主页。
服务质量是用于 Kubernetes 在节点资源不足时使用服务质量类型来作出驱逐Pod决定。首先考虑使用量超过请求的BestEffort、Burstable类型Pod,最后驱逐资源使用量少于请求的Guaranteed、Burstable类型Pod。
- Guaranteed:Pod中每个容器都必须指定CPU及内存请求和限制,并且请求量等于限制量;
- Burstable:Pod中至少一个容器指定CPU或内存的请求或限制;
- BestEffort:Pod中任意容器均未设置CPU或内存的请求或限制
应用Pod主页
点击具体应用Pod名称可跳转至【应用Pod】主页,展示应用Pod基础信息以及Pod中运行的所有容器列及其运行指标。
删除
支持删除应用Pod,删除操作将在K8s中删除当前应用Pod,若应用Pod状态为“运行中”,删除后该相应应用负载会根据期望立即创建新的应用Pod。点击「删除」按钮,弹出是否删除二次确认框。
核心组件
菜单展示KDP系统中 大数据组件、开发工具、DataOps工具、高级管理组件这四类系统应用。用户可方便快捷通过菜单定位到系统组件运行情况、安装情况、使用说明。对有权限的系统应用可进行安装等操作。
不同系统应用使用范围,系统应用操作权限不同:
- 集群全员的系统应用:系统管理员可在admin安全组下进行安装及更新等操作;
- 指定安全组的系统应用:系统管理员、机构admin角色、机构devops角色可在指定安全组下安装及更新等操作;
- 指定安全组或用户的系统应用:系统管理员、机构admin角色、机构devops角色可进行指定安全组或用户安装及更新等操作。机构common角色可进行当前用户下安装及更新等操作。
系统展示核心组件包括
- 大数据组件
- 分布式文件系统 HDFS
- 分布式数据仓库 Hive
- 分布式消息队列 Kafka
- 分布式计算引擎 Spark
- 批流一体计算引擎Flink
- 分布式对象存储 MinIO
- 开发工具
- 数据查询分析工具 Hue
- 数据集成平台 Airbyte
- 面向业务人员的人工智能系统 AutoML
- 机器学习全流程开源平台 MLFlow
- 交互式BI报表工具 Superset
- DataOps工具
- 应用集成开发中心 DDP
- 数据集成开发平台 FlowMan
- 数据服务平台 DS
- 数据应用资产管理平台 DAAM
- 全流程数据质量监管平台 DQ
- 数据标签系统 LS
- 高级管理组件
- 权限管理框架 Ranger
- 身份认证和访问控制 Keycloak
- 计算机网络授权协议 Kerberos
系统主页
点击菜单进入系统主页。展示系统下应用运行情况、安装情况及使用说明。
系统主页首先展示系统下应用列表:
字段 | 含义 |
---|---|
应用名称 | 应用在KDP平台内名称 |
显示名称 | 官方名称 |
最新版本 | 应用的开源最新版本 |
使用范围 | 应用安装后可使用范围,包括集群全员、指定安全组、指定安全组或用户三类 |
说明 | 该应用的简要说明 |
操作 | 安装系统应用,同【应用市场】中安装功能。支持用户安装的应用可进行安装操作 |
在系统负载列表中,展示系统下所有应用运行的应用负载信息,点击具体应用负载名称可进入应用负载主页查看当前负载的具体运行情况;点击具体安全组名称,可跳转至【安全组详情】页。支持重启、查看YAML、设置副本、删除操作。具体说明见【应用负载】菜单。
在「系统安装情况」tab页,展示系统下应用的应用实例列表。可通过应用实例名称、安全组、状态字段对数据进行筛选。点击具体应用实例名称可进入应用实例主页。具体说明见【系统应用】菜单。
在「系统使用说明」tab页,展示当前系统在KDP平台的使用说明,包括整体介绍、产品能力说明、具体应用场景等方面,方便用户对各个系统组件有更多了解,降低KDP平台组件学习、使用、运维成本。
应用主页
点击系统主页应用列表中具体应用名称,可跳转至【应用主页】。展示应用模块列表、应用负载列表、应用实例列表以及应用运维指南。支持部分核心大数据组件应用跳转至其Grafana监控面板。支持「安装」当前用户权限范围内的应用。
注:安装在个人名下的应用负载、应用实例目前在「应用主页」无法显示,可通过「系统主页」或「系统应用」、「应用负载」菜单查询。
安装
有权限用户,点击「安装」按钮,可进入应用安装流程,进行应用配置后,进行应用在指定安全组或用户下安装,以下以指定安全组为例:
监控面板
部分核心组件支持点击右上角「监控面板」按钮,可跳转至Grafana中该应用的看板。
应用模块
平台中每个应用是由多个模块组成的,可以通过应用模块列表查看所有应用模块。支持查看每个模块的配置模板信息
应用运维指南
「应用运维指南」tab页,展示当前应用功能说明、核心功能及demo、常用问题列举及解决方案、基础概念及级联应用说明。
租户管理
系统管理员可见当前集群下所有安全组及用户,支持创建安全组、创建用户;
机构admin/devops角色用户可见当前机构安全组及用户,支持机构admin角色进行当前安全组下用户创建。
系统支持通过安全组、用户和角色的设定,对资源以及权限进行管理。
- 安全组:一个安全组为一部分用户的集合,并在集合内可为不同用户设置相应的角色,如可为安全组a的用户a设置角色a
- 用户:访问系统的基本单元,一个有效邮箱只能注册一个用户账号,一个用户账号可加入多个安全组,并可在不同安全组设置不同角色。
- 角色:对安全组不同权限组合的封装,如安全组a设置了两个角色:角色a和角色b,并为角色a封装了权限a,角色b封装了权限b等。可灵活对安全组的用户进行权限的控制。
安全组是一个用户和资源闭环组织单位,一个安全组内所有用户可以共享安全组被分配的计算资源,安全组之间的计算资源是隔离的。平台的安全组在生产过程中也可以理解为一个独立的部门、一个独立的团队,可以享有独立的计算资源以及成员。用户是平台访问的基本单元。通过安全组、角色和用户之间联系和设定,能更好的控制系统中最小单位-用户所能使用的资源、访问的权限。
安全组管理
系统管理员可进行安全组管理。一个用户可同时属于多个安全组的多个角色。管理员可根据业务需要创建一个或多个机构类型安全组,并把用户添加至相应的安全组。
三类安全组中公共安全组一般用来运行全局共享的系统服务(如:admin安全组),机构类型的安全组是各个租户使用来运行租户独享的应用,其它类型的安全组目前保留作为测试和个人使用。
点击【安全组管理】菜单,显示集群内所有安全组列表,并支持安全组名称的关键词、安全组类型、安全组状态搜索,以及对安全组相关操作。
字段 | 含义 |
---|---|
名称 | 安全组名称及显示名称,若相同显示一个 |
人数 | 安全组下用户数 |
类型 | 机构/公共/其他 |
描述 | 可说明当前安全组职能,方便了解安全组 |
状态 | 已激活/未激活 |
CPU | 安全组下所有应用的CPU资源限制量,及其在配额限制下的百分比 |
磁盘 | 安全组下所有应用磁盘资源请求量,及在配额限制下使用率 |
内存 | 安全组下所有应用的内存资源限制量,及其在配额限制下的百分比 |
操作 | 编辑/管理 |
创建安全组
点击「创建安全组」按钮会弹出创建安全组弹出层,填写安全组名称、安全组类型、展示名称、描述后可点击确定按钮,创建安全组。展示名称作为安全组别名,会显示在系统右上角用户数据卡片中,若不填写默认同安全组名称字段。
创建安全组同时,会对应在K8s中创建一个同名命名空间。系统中安全组数多于K8s命名空间数是因为命名空间像资源一样可回收,而回收后的安全组则一直存在,状态为“未激活”。
安全组创建成功后,会默认有三个角色:admin、devops、common。admin为安全组管理员,可在安全组管理的成员列表中,给成员分配当前安全组的角色。
编辑
安全组列表页面,点击操作栏的「编辑」按钮,即可修改安全组展示名称和描述字段。
安全组详情
点击具体安全组名称或点击「管理」操作按钮,进入【安全组详情】页面,可对安全组成员、应用负载、应用Pod、配额进行管理,支持查看安全组租户资源,以及跳转Ranger权限管理。
成员管理
显示当前安全组下的所有成员列表,可通过用户名称对安全组下成员进行筛选。支持对安全组下成员进行添加、创建、批量导入、编辑角色、禁用操作。
- 添加成员:支持添加一个或多个已经在系统创建成功的用户至当前安全组。
- 创建用户:支持创建一个或多个用户并关联至当前安全组下。填写电子邮箱及用户名后,可批量创建当前安全组下未存在于系统的用户。
- 若用户”user-as-xxx”资源创建失败(可在用户主页查看),此时应禁用该用户。重新使用新用户名、邮箱创建用户。
- 批量导入:支持导入符合csv文件格式规范的文件,必须包含“name”、“email”列,批量创建当前安全组下未存在于系统的用户。
- 修改角色:支持修改成员在当前安全组下角色。
- 禁用用户:支持禁用用户,禁用后该用户将无法再登录系统。
应用负载列表
可查看当前安全组下所有运行的应用负载。列表信息同【应用管理-应用负载】。支持通过应用负载名称、所属系统、负载状态、系统类型、负载类型进行数据筛选。支持对具体负载的重启、查看YAML、设置副本、删除操作。
应用Pod列表
可查看当前安全组下所有运行的应用Pod。列表信息同【应用管理-应用Pod】。支持通过应用Pod名称、Pod状态、节点、服务质量进行数据筛选。支持对具体应用Pod进行查看YAML、查看日志、删除操作。
配额管理
可设置安全组的各类配额,解决当多个用户或团队共享具有固定节点数目的集群时,人们会担心有人使用超过其基于公平原则所分配到的资源量问题。目前配额类型固定为下拉框中可选项。
在添加配额后,在配额列表可查看使用量百分比。目前页面显示CPU(核)、磁盘(GB)、内存(GB)分别为“limits.cpu”、“requests.storage”、“limits.memory”。
租户资源
页面展示新创建安全组流程的全部任务,每个机构安全组,进入当前页面的节点内容是一致的,不同在状态标识,方便用户排查哪些资源创建失败了,会影响相关应用的使用。其中叶子节点是实际任务,上四层是组织任务而定义的逻辑概念,root (一个根节点) -> type -> phase -> step -> task。
as指的是 account set 账户合集,主要对应的是用户/组的账户资源,比如创建各种类型的账户。
rs指的是resource set 资源合集,主要对应的是用户/组的各种类型的资源,比如数据库比如cpu memory以及各类型的应用资源。
权限管理
页面提供跳转内置Ranger工具的链接。Ranger中提供了集中式的权限管理框架,可以对Hadoop⽣态中的HDFS、Hive、Kafka、Storm和Solr等组件进⾏细粒度的权限访问控制,并且提供了Web UI⽅便管理员进⾏操作。
正确部署Ranger,并在集群配置中添加 “admin-ranger-admin-domain”链接地址后,点击「前往Ranger配置」按钮可直接进入Ranger登录页。初始用户密码可联系智领云运维人员获取。
登录后可查看已经预置好的 HDFS、KAFKA、HADOOP SQL、FM、DS、ONLINE 服务。
点击具体服务,可查看预置的策略。请勿随意修改系统层面的策略。以服务「adminhivedev」为例:
点击菜单栏中「settings-Users/Groups/Roles」可查看目前的用户、组、角色信息。KDP中创建的用户及安全组,与Ranger的用户及组同步。
① 新增策略
一条策略分为三部分,Policy Details 、Allow Conditions、Deny Conditions,一般情况下只需要注意前两部分。策略从创建/修改到生效的时间一般不长于30秒。
- “*” 是通配符,指一个或多个字符,“?”表示单个字符(注意:英文问号)。
支持特殊变量“{USER}”,一般与Allow Conditions中 “Select user” 配合使用,表示所有用户对于“/org”下其自己的目录有所有的权限。
支持特殊变量“{OWNER}”,含义为资源所有者,使用较少,使用方法与USER类似
- 权限校验,Allow Conditions中存在 allow和exclude from allow,Deny Conditions中存在 deny和exclude from deny,判断流程如下:
② KDP中 FM、DS、ONLINE 系统策略说明
- 这三个的ranger plugin中定义的resource规则一致,均为 group/resource_owner/x
- group 配置内容为机构名
- resource_owner配置区分为个人项目和机构项目
- 个人项目:配置为 “{USER}”
- 机构项目:配置为机构名,同group
- x表示各系统自定义的resource名称,一般配置为“*”,如果只是某一个具体项目,为对应的资源对应的id
- 权限相关的根据需要给定对应的权限即可,注意:FM 给只读权限时需给 READ+LIST
③ HDFS 策略说明
- HDFS 策略配置中,对一个机构需配置三条策略,hdfs-org-<org_name>-<users/tmp/all> 三条策略,分别对应机构下所有用户权限、tmp目录权限、根目录权限
- 除特殊要求外,resource path不要以 “/“ 结尾
- recursive 需要打开,表示递归,即配置的path下文件及子目录等,不打开表示给当前目录这一级给权限
- “-all” 的策略需要给“hive”用户权限
④ Hive 策略说明
- Hive权限配置中,一个机构对应5条策略,其中三条策略为url相关,配置path同hdfs配置,另外一条关于table,一条关于udf
- 具体配置可参考Ranger中新用户注册后生成的策略
用户管理
系统管理员可对用户进行管理,用户列表可通过用户名关键词、用户状态进行搜索。对注册用户支持进行重置密码、禁用操作。对未激活用户可进行「激活」操作。
字段 | 含义 |
---|---|
用户名 | 用户在系统中展示名称 |
电子邮箱 | 用户注册和登录邮箱 |
安全组 | 用户所在安全组 |
角色 | 用户所在安全组的角色 |
更新时间 | 用户信息最后变更时间 |
状态 | 已激活/未激活 |
操作 | 重置密码/禁用 |
- 添加 系统支持通过邮件关联来创建用户账号,用户的角色在安全组进行定义,用户可归属于一个或多个安全组。
用户注册后,系统会自动把登录信息发送至绑定的邮箱,用户可通过查看邮件信息进行系统登录。同时系统也支持通过默认密码方式新建用户,可适用与无法联通外部网络的环境,该情况请联系智领云获得支持。
注
- 若用户”user-as-xxx”资源创建失败(可在用户主页查看),此时应禁用该用户。重新使用新用户名、邮箱创建用户。
重置密码 在用户列表页面,点击操作栏的重置按钮,即可重置该用户。密码重置后,用户邮箱将收到新的密码。
禁用 在用户列表页面,点击操作栏的禁用按钮,即可回收用户资源,该用户将无法再登录系统。
用户主页
在「用户管理」页面,用户列表中点击具体用户名称,可进入用户主页。
主页展示创建用户(非系统默认创建用户)流程的全部任务,每个用户,进入当前页面的节点内容是一致的,不同在状态标识,方便排查哪些资源创建失败了,会影响后续相关应用的使用。 与安全组租户资源相比,展示了所在安全组的资源情况以外,还展示了用户的账户资源及其他资源创建状态。
权限配置管理
系统管理员可进行权限配置。支持针对机构、用户或角色配置菜单是否禁用策略。
注
- 针对同一个功能,不可即设置“禁用”也设置“允许使用”,若有相同设置会有错误提示
- 针对不同类型,优先级 “禁用” > “允许使用”
- 针对不同受众,优先级 其他类型 > “所有人”
控制面板
系统提供平台全局、集群、安全组配置管理。不同安全组角色用户,只能查看、修改其对应权限的内容。
- 建议系统管理员在权限配置管理设置时,对普通用户角色关闭控制面板
- 常规情况下,系统管理员也无需对控制面板进行操作。如在特殊情况下需要修改时,请联系智领云工程师,并谨慎确认,不当修改会造成集群大规模不可修复的损伤。
安全组配置管理
系统管理员可对所有安全组的配置信息进行查看、版本比对、编辑操作;
机构admin/devops角色用户可对当前管理机构安全组的配置信息进行查看、版本比对、编辑操作;
机构common角色用户仅可对当前所属机构安全组的配置信息进行查看。
系统提供针对安全组配置进行界面化操作的功能,管理员用户可根据实际需要,对指定安全组的配置内容进行修改。
查看
通过筛选框选择权限范围内的安全组名称,查看其配置。
编辑
点击「编辑配置」按钮进行安全组配置的修改,修改需谨慎,不当修改会对集群造成大规模不可修复的损伤!
版本比对
点击「历史版本比对」按钮,用户可通过选择不同配置版本并进行内容比对,查看区别。如示例,对安全组增加了automl-web的相关权限。
集群配置管理
系统管理员可对集群配置信息进行查看、版本比对、编辑操作;
其他用户可对集群配置信息进行查看、版本比对操作;
系统管理员用户通过界面,对集群配置进行统一管理 ,包括:集群各个组件及应用访问入口、文件服务器、镜像仓库、全局变量、应用资源、服务开关、存储、通知配置等,非必要不要修改或请在智领云管理员指导下进行修改。
仅系统管理员用户可进行集群配置的「更新配置」操作。
历史版本
点击「历史版本」按钮,页面跳转至集群配置历史版本列表页面。
用户选择任意两个版本可进行版本比对,查看变化。
全局配置管理
所有用户均能查看全局配置
全局配置展示当前系统中应用版本、应用服务名称、应用按键选项、应用principal、应用门禁开关等信息。不可编辑。
个性化配置
系统管理员可进行所有人及指定机构下用户进行系统Logo等个性化配置
其他用户可对当前机构用户进行系统Logo等个性化配置
KDP平台的个性化配置,支持设置KDP系统网页信息,以及应用门户页面标题及描述信息。指定安全组的设置优先级高于对所有人的设置。
- 页面logo及文案信息控制对应关系如下示例:
KDP
应用门户
- 全局功能开关,设置开启后可开启对应功能
集群证书
仅系统管理员可见
系统管理员用户可通过界面,查看集群的授权信息,包括ID,版本类型,允许的应用数和节点数,过期时间等。并根据智领云管理员提供的证书信息,进行机器证书更新。普通用户如果配置了此菜单权限,也不能看到集群证书信息。KDP集群需要一个授权证书才能运行。一般在购买时会设置一个有授权时限的证书,设置后系统即可正常运行。
当证书过期后,已有系统仍可继续正常运行,但是无法运行新的应用,系统管理界面也无法正常工作。
注:集群的证书维持时间,需联系智领云商务人员进行商议。
网络配置
系统提供统一界面,查看集群中每个负载的网络配置信息,包括:应用名称、网络模式(host、container/bridge)、负载均衡IP地址、VIP(集群内部访问的IP地址)、容器端口、主机端口、协议等。
注:没有数据说明并未对该应用的此参数进行配置。
日志记录
系统支持针对系统内所有操作进行审计,对各个节点上的Pod容器日志进行统一自动采集,并以图形界面对日志进行查看、追踪和调试,用户可从此处查看日志,以及追溯用户的行为。
日志高光
页面可通过安全组、Pod、容器、时间区间来筛选要查看的日志数据。
日志量
系统日志包含两类,标准输出/标准错误是指各个运行容器打印到控制台的日志记录,日志文件指各个运行容器存入日志文件的日志记录。此两类无明确的范围划分,日志内容会存在部分重合,数据都通过Loki进行收集存储。日志数据默认在系统中留存7天。
日志量模块,日志量概览展示集群所有运行容器的标准输出/标注错误方式采集日志量及大小。趋势图展示时间区间内两种日志的条数及容量变化趋势。
错误日志
在筛选条件下显示有错误日志信息,能快速定位到报错数据。
点击报错记录,能查看错误日志详情,通过其中 container容器名称、namespace命名空间、start报错时间,可在「日志查看」页面查找报错日志上下文,查询更丰富内容。
日志查看
系统通过统一的日志管理,对所有应用的运行中容器产生日志,进行统一收集、统一处理、统一存储和分析。
支持通过关键字、安全组、应用Pod、容器、时间区间来筛选日志记录。页面展示最多5k条日志数据。建议选择具体的 应用Pod及容器后,适当调整时间区间范围,若查询范围过大会导致检索时间过长。
操作记录
对于系统平台上的任何操作记录,如用户在系统界面上提交的一些操作,包括:应用安装、运行、用户创建删除等等,可以追溯其详细日志记录。
- 操作记录列表,支持根据操作类型、操作对象、安全组、用户、状态、时间区间进行数据筛选。
- 操作类型下拉列表中为常用操作,支持用户自行输入其他操作:
- install 应用安装
- uninstall 应用停止
- delete 应用卸载、应用Pod删除
- run 启动工作流
- restart 重启应用负载
- import DDP导入项步骤
- update 更新应用实例、集群配置
- excute 执行ping/telnet指令
- 关联 安全组新增已激活用户
- 创建 创建安全组或用户
- 激活 激活安全组或用户
- 注册 BO注册用户
- 操作类型下拉列表中为常用操作,支持用户自行输入其他操作:
字段 | 含义 |
---|---|
进程 | 简单描述进程 |
操作对象 | 该进程的操作对象,可能是安全组、用户、应用实例、应用负载、应用Pod等 |
操作 | 操作类型 |
状态 | [进行中,已完成,失败],分别对应三种状态描述 |
用户 | 执行该操作的具体用户 |
创建时间 | 该进程的创建时间,精确到秒级 |
- 查看详情
在进程列表,点击进程名称即可查看进程详情。
最终结果:日志窗口顶端会显示结果,[进行中,已完成,失败]。
日志时间:模拟Linux终端显示日志输出时间。
日志等级区分:
info 蓝色
error 红色
warning 黄色
success 绿色
重置:日志内容会实时更新。