云服务器内容精选

  • 名词解释 插件:是包含函数、连接器、公共库的聚合。插件有自定义插件和商业插件两种类型,其中,自定义的插件可以在集市中显示,也可以在剧本中使用。 插件集:是具有相同业务场景的插件集合。 函数:是可以在剧本中选用的执行函数,在剧本中执行特定的行为。 连接器:是用于连接数据源,将告警、事件等安全数据接入 安全云脑 ,包括事件触发和定时触发两种连接器类型。 公共库:是一个公共模块,包含在其他组件中会使用到的API调用和公共函数。
  • 安装ICAgent的限制说明 Linux环境:ICAgent支持的Linux操作系统,请参考Linux操作系统。 Windows环境:仅支持在如下64位系统的Windows环境中安装ICAgent。 Windows Server 2016 R2 Datacenter Windows Server 2016 R2 Standard Windows Server 2016 Datacenter English Windows Server 2016 R2 Standard English Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard Windows Server 2012 Datacenter English Windows Server 2012 R2 Standard English Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 Enterprise English Windows Server 2008 R2 Standard English Windows环境不支持在 云日志 服务主机管理界面对ICAgent进行升级和卸载操作。如果需要使用新版本,请先卸载旧版本ICAgent,再安装新版本ICAgent。请在ICAgent安装包解压目录下,双击执行“ICAgent安装包解压目录\ICProbeAgent\bin\manual\win\uninstall.bat”脚本,当显示“ICAgent uninstall success”时,表示卸载成功。
  • 安装方式说明 ICAgent有两种安装方式,请按照您的场景进行选择。 表1 安装方式 方式 适用场景 首次安装 该服务器上未安装过ICAgent。 在服务器上执行ps -aux | grep icagent命令,查看没有ICAgent进程,则确认没有安装过ICAgent。 首次安装(Linux环境) 首次安装(Windows环境) 继承安装(Linux环境支持) 您有多个服务器需要安装ICAgent,其中一个服务器已经通过首次安装方式装好了ICAgent,对于没有安装ICAgent的其他多个服务器,您可以采用该安装方式。 继承安装(Linux环境) 继承批量安装(Linux环境)
  • 继承批量安装(Linux环境) 如果您有多个服务器需要安装ICAgent,其中一个服务器已经通过首次安装方式装好了ICAgent,且该服务器“/opt/ICAgent/”路径下存在ICAgent的安装包ICProbeAgent.tar.gz,对于没有安装ICAgent的服务器,可以通过该方式对服务器进行一键式继承批量安装。 批量安装的服务器需同属一个VPC下,并在同一个网段中。 批量安装功能依赖python3.*版本,如果安装时提示找不到python请在服务器上安装python版本后重试。
  • 常见报错 场景一 ERROR: permission denied for function control_extension 解决方法:未使用root用户执行control_extension函数,需更改连接用户为root。 场景二 ERROR: function control_extension(unknown, unknown) is not unique 解决方法:在不指定schema时,可能存在同名函数,导致函数不唯一无法运行,可选择添加schema参数重试。 场景三 ERROR: function control_extension(unknown, unknown) does not exist 解决方法:control_extension函数在postgres库不存在,postgres库作为RDS运维库,禁止创建插件。
  • AuthObject对象 AuthObject对象即鉴权客体,被鉴权对象。 表2 AuthObject对象参数说明 参数名称 数据类型 描述 projectId String 被鉴权资源所在的项目id,对于不属于项目的资源,允许为空。 对于非多项目应用(MetaService中tenantModel为null或者TENANT),允许为空。 如果为多项目应用(MetaService中tenantModel值为TENANT_PROJECT),则传入projectId。 resource String 被鉴权资源,不允许为空。 根据MetaBOAuthorizeType不同的值,传入对应值。 ROOT:传入BO对象所在的Root BO的id。 TYPE_LEVEL:传入BO name。 INSTANCE_LEVEL:传入BO对象id。
  • AuthSubject对象 AuthSubject对象即鉴权主体。 表1 AuthSubject对象参数说明 参数名称 数据类型 描述 tenantId String 根据用户所在的租户传值: 对于非多租应用(MetaService中tenantModel为空),允许为空。 如果为多租应用(MetaService中tenantModel值为TENANT或者TENANT_PROJECT),则传入tenantId。 uid String 鉴权主体的user id,不允许为空。
  • 认证配置 在配置文件中加入oauth2认证相关配置和devspore相关配置,如下: devspore: auth: exclude-paths: GET:/test # 不需要认证的路径,多个规则用;分隔 auth-patterns: /v1/** # 需要认证的路径,多个规则用;分隔 in-header: true # token是否在header中,默认true token-name: X-Auth-Token # token在header中的参数名,inHeader设置为true时生效,默认X-Auth-Token
  • 实现UserStore接口 import com.huawei.devspore.plugin.spi.authentication.UserInfo; import com.huawei.devspore.plugin.spi.authentication.UserStore; import org.springframework.stereotype.Component; @Component public class CustomUserStore implements UserStore { @Override public void setUserInfo(UserInfo userInfo) { // 自定义存储用户信息 ...... } @Override public UserInfo getUserInfo() { UserInfo userInfo = new UserInfo(); // 自定义用户信息获取 ...... return userInfo; } }
  • 实现TokenParser接口 import com.huawei.devspore.plugin.spi.authentication.UserInfo; import com.huaweicloud.devspore.auth.commons.spi.TokenParser; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; @Component public class CustomTokenParser implements TokenParser { /** * 若token定义在header中,可使用该接口,token获取根据配置由devspore-auth获取 * * @param token * @param response * @return UserInfo */ @Override public UserInfo parserToken(String token, HttpServletResponse response) { // 自定义token解析 ...... // 判断token是否过期 ...... UserInfo userInfo = new UserInfo(); // 根据解析后的token信息填充UserInfo对象 ...... return userInfo; } /** * 若token未定义在header中,使用该接口 * * @param request * @param response * @return UserInfo */ @Override public UserInfo parserToken(HttpServletRequest request, HttpServletResponse response) { // 从httpServletRequest获取token ...... // 自定义token解析 ...... // 判断token是否过期 ...... UserInfo userInfo = new UserInfo(); // 根据解析后的token信息填充UserInfo对象 ...... return userInfo; } }
  • 配置说明 表1 配置说明 参数名 是否必须 功能 devspore.auth.exclude-paths false 不需要认证的路径,多个规则用分号(;)分隔,优先级大于devspore.auth.auth-patterns。 devspore.auth.auth-patterns false 需要认证的路径,多个规则用分号(;)分隔。 devspore.auth.in-header false token是否在header中,默认true。 devspore.auth.token-name false token在header中的参数名,inHeader设置为true时生效,默认“X-Auth-Token”。
  • 整体架构 devspore-horizon是DevSpore开发框架提供的一种插件机制,您可以在请求被处理前(Entry)和应答发送前(Exit)调用DevSpore预置的,也可以使用自己开发的插件,可用于实现统一的操作前认证、鉴权,操作后消息发送、缓存更新、审计等功能。 devspore-horizon架构图如下: 图1 架构图 Entry类插件采用的是责任链模式(chain of resposibility),所有的插件按照被注册的顺序依次调用,其中有一个插件抛出异常则整个请求返回失败。 Exit类插件采用的是观察者模式(Observer),所有的插件作为观察者注册,DevSpore运行时库里的Publisher模块同时调用所有的观察者插件(插件可能被并发执行且执行的顺序随机),插件执行的结果不能影响请求返回。
  • Volcano调度器版本发布记录 表1 Volcano调度器版本记录 插件版本 支持的集群版本 更新特性 1.15.6 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30 新增基于应用资源画像的超卖能力 1.14.11 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30 新增支持超节点资源调度模型(HyperJob) 支持超节点亲和调度 支持Kubernetes v1.30 1.13.7 v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 网卡资源调度支持前置预热 支持自定义资源超卖比例 1.13.3 v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 支持自定义资源按照节点优先级缩容 优化抢占与节点扩容联动能力 1.13.1 v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 调度器内存使用优化 1.12.18 v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 适配CCE v1.29集群 默认开启抢占功能 1.12.1 v1.19.16 v1.21 v1.23 v1.25 v1.27 v1.28 应用弹性扩缩容性能优化 1.11.21 v1.19.16 v1.21 v1.23 v1.25 v1.27 v1.28 支持Kubernetes v1.28 支持负载感知调度 镜像OS更新为HCE 2.0 优化 CS I资源抢占能力 优化负载感知重调度能力 优化混部场景抢占能力 1.11.9 v1.19.16 v1.21 v1.23 v1.25 v1.27 优化昇腾芯片rank table排序能力 支持应用弹性伸缩场景下的优先级调度 1.11.6 v1.19.16 v1.21 v1.23 v1.25 v1.27 支持Kubernetes v1.27 支持重调度功能 支持节点池亲和调度能力 优化调度性能 1.10.14 v1.19.16 v1.21 v1.23 v1.25 支持GPU资源抢占 优化混部弹性限流功能 增强可用区拓扑分布能力 优化昇腾芯片rank table排序能力 优化GPU虚拟化功能 提升与CA联动扩容效率 提升调度稳定性 优化持久卷调度逻辑 优化日志信息 1.10.7 v1.19.16 v1.21 v1.23 v1.25 修复本地持久卷插件未计算预绑定到节点的pod的问题 1.10.5 v1.19.16 v1.21 v1.23 v1.25 volcano agent支持资源超卖。 添加针对GPU资源字段的校验admission:nvidia.com/gpu应小于1或者为正整数,volcano.sh/gpu-core.percentage应小于100并为5的倍数。 修复存在PVC绑定失败的场景下,后续提交Pod调度慢的问题。 修复节点上存在长时间Teminating Pod场景下,新提交Pod无法运行的问题。 修复并发创建挂载PVC的Pod的场景下,volcano重启的问题。 1.9.1 v1.19.16 v1.21 v1.23 v1.25 修复networkresource插件计数pipeline pod占用subeni问题 修复binpack插件对资源不足节点打分问题 修复对结束状态未知的Pod的资源的处理 优化事件输出 默认高可用部署 1.7.2 v1.19.16 v1.21 v1.23 v1.25 Volcano支持v1.25集群 提升Volcano调度性能 1.7.1 v1.19.16 v1.21 v1.23 v1.25 Volcano支持v1.25集群 1.4.7 v1.15 v1.17 v1.19 v1.21 删除Pod状态Undetermined,以适配集群Autoscaler的弹性能力。 1.4.5 v1.17 v1.19 v1.21 volcano-scheduler的部署方式由StatefulSet调整为Deployment,修复节点异常时Pod无法自动迁移的问题 1.4.2 v1.15 v1.17 v1.19 v1.21 修复跨GPU分配失败问题 适配更新后的EAS API 1.3.7 v1.15 v1.17 v1.19 v1.21 支持在/离线作业混合部署及资源超卖功能 优化集群调度吞吐性能 修复特定场景下调度器panic的问题 修复CCE v1.15集群中volcano作业volumes.secret校验失败的问题 修复挂载volume,作业调度不成功的问题 1.3.3 v1.15 v1.17 v1.19 v1.21 修复GPU异常导致的调度器崩溃问题;修复特权Init容器准入失败问题 1.3.1 v1.15 v1.17 v1.19 升级Volcano框架到最新版本 支持Kubernetes v1.19版本 添加numa-aware插件 修复多队列场景下Deployment扩缩容的问题 调整默认开启的算法插件 1.2.5 v1.15 v1.17 v1.19 修复某些场景下OutOfcpu的问题 修复queue设置部分capability情况下Pod无法调度问题 支持volcano组件日志时间与系统时间保持一致 修复队列间多抢占问题 修复ioaware插件在某些极端场景下结果不符合预期的问题 支持混合集群 1.2.3 v1.15 v1.17 v1.19 修复因为精度不够引发的训练任务OOM的问题 修复CCE v1.15以上版本GPU调度的问题,暂不支持任务分发时的CCE版本滚动升级 修复特定场景下队列状态不明的问题 修复特定场景下作业挂载PVC panic的问题 修复GPU作业无法配置小数的问题 添加ioaware插件 添加ring controller 父主题: 插件版本发布记录
  • 通过本地文件安装CodeArts Snap 进入CodeArts IDE插件市场,查看“CodeArts Snap”插件详情,单击“Download Extension”下载插件。 图1 Snap插件详情 在“CodeArts IDE”右上角单击“扩展”打开扩展管理。 图2 CodeArts IDE扩展管理 单击图标,选择从本地安装。 图3 选择从本地安装 在文件浏览器中选中“CodeArts Snap”插件文件“huaweicloud.codearts-snap-2.0.1.carts”,单击“安装”。 图4 文件浏览器 CodeArts IDE弹出“非受信任扩展安装提示”,单击“去扩展市场查找”或“取消”跳出安装。单击“继续安装”进入下一步。 “CodeArts IDE”完成安装后弹出安装成功提示。同时弹出CodeArts Snap免责声明。 图5 免责声明 根据您的意愿是否“同意”免责声明,“同意”即可使用插件,关闭将无法使用插件。
  • 添加仪表盘 在左侧菜单栏中,单击 选择Dashboards,在New dashboard页面中,单击add an empty panel。 在New dashboards页面中,选择hws-lts-grafana-datasource-plugin插件和填写对应的sql语句。 在右上角选择对应时间,并单击 按钮,可刷新请求最新的数据并展示。 LTS-Grafana插件相关参数配置规则如下: 表格类型数据,需要将x-column参数的值给为"table"。 单值类型数据,例如数字图,需要将x-column参数值给成"single"。 包含维度列图表:x-column配置为时间列字段,y-column配置为col1:col2。其中col1为聚合列,col2为数据列。 柱状图类型图表:x-column配置为"bar",y-column配置为col1,col2。其中col1为类目列,col2为数据列。 饼图类型图表:x-column配置为"pie",y-column配置为col1,col2。其中col1为类目列,col2为数据列。