一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于容器云技术的智能模型训练资源调度方法与流程

2022-02-19 10:53:18 来源:中国专利 TAG:


1.本发明属于容器云技术领域,主要涉及到分布式集群的多容器调度以及集群资源配额技术,尤其涉及一种自定义容器资源控制方法。


背景技术:

2.容器云计算技术作为新一代的信息基础设施已成为广泛共识。随着云原生、微服务化等技术的不断发展,越来越多的企业开始采用基于kubernetes技术构建容器云平台,kubernetes是一个全新的基于容器技术的分布式架构领先方案,具备了超强的横向扩容能力,使用kubernetes就是全面拥抱微服务架构。深度学习智能算法也是目前世界最火热的项目之一,将二者进行结合是目前云计算行业内的一个重要分支,即在容器云平台上进行智能模型算法的训练,利用容器云技术的资源调度方法来优化智能模型训练的效率。目前,kubernetes 在智能的应用方面存在一些不足,例如没有一个基于kubernetes可定制化开发的模型训练资源控制器,在容器云平台进行智能模型训练的过程中,并没有一个很好的工具可以实现训练、验证、服务发布全流程的资源调度。


技术实现要素:

3.发明目的:本发明的目的在于针对现有技术的不足,提供一种基于容器云技术的智能模型训练资源调度方法。
4.技术方案:本发明的基于容器云技术的智能模型训练资源调度方法,包括如下步骤:步骤1、多节点容器云环境搭建:在多节点上使用kubernetes进行容器云环境的搭建与部署,以下将kubernetes简称k8s;步骤2、容器云智能模型训练资源创建:在容器云平台上创建有关于智能模型训练资源的自定义资源;该资源结合部署、服务、有状态副本集等多种组件的功能于一体,实现智能模型训练的全流程资源注册能力,方便后续使用容器云平台进行模型训练资源的管理与调度。
5.步骤3、智能模型训练资源调谐逻辑编写:编写有关智能模型训练资源调谐逻辑的相关代码,在容器云平台上创建对应自定义控制器,将智能模型训练资源的注册、变更、删除操作注册到apiserver并实时监听该资源状态,以实现通过容器云技术对智能模型训练资源进行调度的目的。
6.进一步地,步骤1中,所述容器云环境的搭建与部署具体包括如下步骤:步骤1

1、准备多台linux服务器,确保它们拥有相同的cpu架构,确保它们拥有至少8核cpu、16g内存与200g硬盘,确保它们之间网络通畅,且均不属于192.168的内网网段;步骤1

2、配置每台服务器的hostname与hosts,使它们能够通过dns相互识别,关闭每台服务器的防火墙与selinux,统一设置root用户登陆;步骤1

3、在每台服务器上安装nfs

server、docker

ce、kubelet、kubeadm、
kubectl、kubernetes

cni,其中,nfs

server为网络文件系统,用于服务器通过网络共享文件,应用于智能模型资源中的存储卷或存储类;docker

ce为一种容器运行引擎,k8s使用容器化部署方式,故会使用到容器运行引擎;kubelet、kubeadm、kubectl、kubernetes

cni为k8s安装及运行时基本组件;步骤1

4、在k8s主节点使用kubeadm初始化一个k8s基础集群,并生成相关证书与密钥发送给子节点,子节点通过kubeadm加入该基础集群;在该集群上通过容器部署基础网络组件calico、资源监控组件metrics

server、k8s仪表盘dashboard,当集群内网络组件calico成功运行后,集群内各节点运行状态会显示为ready,即多节点容器云环境搭建成功。
7.进一步地,步骤1

4中,所述calico内部pod使用192.168.0.0/16网段。
8.进一步地,步骤2中,所述容器云智能模型训练资源创建具体包括如下步骤:步骤2

1、制作智能模型训练资源的基础训练镜像,该镜像使用centos或ubuntu官方镜像为基础,提供智能模型训练的基础开发环境,并安装适配各类系统基础配套工具;步骤2

2、为智能模型训练资源创建相应的存储卷,或是相应存储类,为智能模型训练资源提供对应的存储支持,一些未加密或加密的参数,亦需要传递给智能模型训练资源,因此创建相应的配置图和秘密卷,建立相应的角色控制与服务账户,来创建一个角色,该角色能够获取上述存储卷与配置图的资源的读取、修改的权力,同时,建立相应的容器安全策略配置,来赋予智能模型训练容器一些宿主节点的高级权限;步骤2

3、创建智能模型训练资源对应的自定义资源,其中包括智能模型训练资源的名称、训练镜像名称、服务账户名称、存储类名称、配置图名称和暴露端口,这些部分将会作为智能模型训练资源的一部分,被注册到集群的apiserver中。
9.进一步地,步骤2

1中,所述基础开发环境包括python3.6、tensorflow、pytorch、jupyternotebook、django。
10.进一步地,步骤2中,所述智能模型训练资源调谐逻辑编写具体包括如下步骤:步骤3

1、通过client

go建立智能模型训练资源的动态客户端,用于处理智能模型训练资源这种自定义资源;建立智能模型训练资源的通知器,通过通知器机制保证该自定义资源与集群apiserver通信时消息的实时性、可靠性、顺序性;步骤3

2、通过client

go建立智能模型训练资源建立后需要创建的子资源,包括相应的部署、有状态副本集、服务、服务账户、配置图,通过对应的接口在智能模型资源创建后自动创建这些子资源并监控这些子资源的运行状态;步骤3

3、建立智能模型训练资源的调谐机制,包括集群调度机制,即在各种资源使用量情况下如何确定apiserver对智能模型训练资源的调度与分配逻辑;队列处理机制,即处理这些资源的顺序、等待时机、遇错解决方法;apiserver同步机制,即何时去同步更新智能模型训练资源在apiserver的状态;更新状态机制,即在各种情况下需要更新智能模型训练资源的何种状态,在何种状态下需要重启资源或重新加入队列;这一步是智能模型训练资源调度的核心一步,使用容器云平台对智能模型训练资源进行调度,实际效果将取决于调谐机制的好坏。
11.步骤3

4、编译相关调谐代码为二进制文件,制作相应的控制器容器,内部运行该二进制文件并封装该容器为对应镜像,实现与集群中apiserver的通信与对智能模型训练
资源的调度。
12.本发明主要解决在集群中进行智能模型训练过程中无法很好地进行资源分配的问题。本发明首先创建相应的kubernetes集群作为智能模型训练资源的运行平台,依靠kubernetes强大的集群调度、管理能力作为调度基础。
13.kubernetes:一种谷歌公司开源的容器编排管理平台,简称k8s。
14.apiserver:k8s集群中存在于主节点的api服务器,用于处理集群所发生的所有事件,接收从各个节点kubelet中发来的事件信号。
15.有益效果:与现有技术相比,本发明具有如下显著优点:(1)本发明通过配合kubernetes强大的拓展能力及稳定的自定义调谐机制,使智能模型的训练可以充分利用集群的资源,尽量减少资源不足或资源浪费的情况。本发明不仅能够在集群中进行智能模型的分布式训练,同时避免传统直接训练的方式可能造成的资源浪费与不足问题,确保充分利用集群资源。
16.(2)该方法能够适应各种不同设备性能的分布式集群,可以在保证集群内部网络通畅的前提下,显著提高大规模智能模型训练的效率。
附图说明
17.图1基于容器云技术的智能模型训练资源调度方法整体实施流程;图2智能模型训练资源调度自定义控制器功能逻辑图。
具体实施方式
18.下面结合附图对本发明的技术方案作进一步说明。
19.如图1所示,本发明的一种基于容器云技术的智能模型训练资源调度方法的实施主要包括创建多节点容器云环境、在集群apiserver注册自定义智能模型训练资源以及创建自定义控制器三个主要步骤。
20.首先创建多节点kubernetes集群,在多节点安装docker、kubeadm、nfs等组件,初始化一个多节点kubernetes集群,在集群内部部署calico网络架构,接着安装metrics集群资源监控插件以及dashboard集群监控面板,当集群内所有节点的状态都为已就绪之后,即高可用kubernetes集群已安装完成。
21.容器云环境的搭建与部署具体包括如下步骤:1、准备多台linux服务器,确保它们拥有相同的cpu架构,确保它们拥有至少8核cpu、16g内存与200g硬盘,确保它们之间网络通畅,且均不属于192.168的内网网段;2、配置每台服务器的hostname与hosts,使它们能够通过dns相互识别,关闭每台服务器的防火墙与selinux,统一设置root用户登陆;3、在每台服务器上安装nfs

server、docker

ce、kubelet、kubeadm、kubectl、kubernetes

cni,其中,nfs

server为网络文件系统,用于服务器通过网络共享文件,应用于智能模型资源中的存储卷或存储类;docker

ce为一种容器运行引擎,k8s使用容器化部署方式,故会使用到容器运行引擎;kubelet、kubeadm、kubectl、kubernetes

cni为k8s安装及运行时基本组件;4、在k8s主节点使用kubeadm初始化一个k8s基础集群,并生成相关证书与密钥发
送给子节点,子节点通过kubeadm加入该基础集群;在该集群上通过容器部署基础网络组件calico、资源监控组件metrics

server、k8s仪表盘dashboard,当集群内网络组件calico成功运行后,集群内各节点运行状态会显示为ready,即多节点容器云环境搭建成功。calico内部pod可使用192.168.0.0/16网段。
22.然后创建集群内自定义资源,即自定义智能模型训练资源,该资源囊括了包括cpu、内存、部署等多项集群资源。编写自定义智能模型训练资源定义文件,在规格中明确不同资源及其命名空间中cpu与内存大小、可容纳的部署个数、存储类容量大小等要求与限制,然后在kubernetes集群中应用这一自定义资源定义文件,这是实现集群内智能模型训练资源调度的基础。
23.基础开发环境包括python3.6、tensorflow、pytorch、jupyternotebook、django。
24.最后编写自定义控制器,设定调谐逻辑,并确定重新同步的周期,控制器会监控智能模型训练资源并处理相关的各种事件,并会在遇到冲突与错误后重新将事件与资源加入处理队列。
25.如图2所示,自定义控制器对智能模型训练资源进行监控与处理的整个架构与流程,步骤如下:第一步,编写映射器组件,列出并监控kubernetes集群中的智能模型训练自定义资源,然后将获取的相关智能模型训练资源与事件对象作为元对象添加到先入先出队列中,等待后续的处理。
26.第二步,编写通知器组件,通知器组件会首先会获取从先入先出队列中取出的智能模型训练资源与事件,将它们作为元对象添加到索引器组件中,接着通知器组件内部的事件处理器会初步对这些元对象进行处理,例如按照定义好的事件分类进行基本的处理,将事件拆分成具体的集群资源。将先入先出队列传出的元对象进行基本简单处理后,将它们传入后续的工作队列进行最终也是最重要的处理。
27.第三步,编写工作队列中处理与调谐逻辑,这也是控制器最重要的实现逻辑。工作队列用于将元对象的交付与其处理分离,通过资源事件处理函数提取传递的对象的主要资源与变更事件,并将其添加到工作队列中,此处可以添加逻辑来过滤掉一些不重要或者对智能模型训练来说不关心的信息。调谐逻辑用于处理工作队列中的对象,可以有一个或多个其他函数一起处理,这些函数通常使用索引器列表或是列表包装器来检索与这些资源与事件对应的对象,这里就包括本方法可以自定义的资源调度方法业务逻辑。将智能模型训练资源的注册、变更、删除等操作逻辑反映成资源对象的字段变化,转换为处理后对象,并将它们添加到索引器中。最终索引器会保存元对象与处理后的对象,并将它们注册到apiserver并实时监听该资源状态,以实现通过容器云技术对智能模型训练资源进行调度的目的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献