System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及kubernetes云平台,特别涉及一种基于云盘制作镜像缓存加速容器启动的方法。
技术介绍
1、从容器技术诞生以来,镜像技术极大方便开发人员创建和交付云原生应用,让开发人员打包应用文件和组件的轻量级软件包,发布到镜像仓库上以便重复利用,镜像仓库负责保存分发镜像文件。
2、oci image format,开放容器镜像格式标准,包含manifest、config、index和zip压缩包等文件,这些文件共同作用构建容器根目录所需文件。从制作镜像到容器使用镜像,是一个正向反向操作,制作镜像则是压缩上传文件到仓库,使用镜像是下载解析解压过程。
3、containerd,一种容器运行时,提供oci image操作能力,按照oci标准制作镜像和使用镜像启动容器,提供容器运行时接口cri插件,kubernetes通过grpc方式调用cri操作容器,包括启动容器、销毁容器等。
4、containerd snapshot,containerd中一个插件,用于管理文件系统上的容器镜像的快照,为容器提供rootfs制作、挂载和卸载等操作功能。
5、容器启动需要经过以下阶段:1.从镜像仓库拉取镜像文件;2.解析镜像文件,解压镜像文件压缩包;3.基于镜像文件制作容器启动目录;4.准备网络环境……启动容器。从远程仓库拉取镜像,并解压文件依赖网络连通情况需消耗较长时间和大量cpu算力。
6、随着基于kubernetes平台普及和发展,不需要开发人员管理的服务器的serverless技
7、云厂商云盘,是一种高可用、高可靠、低成本、可定制化的块存储设备。可作为服务器独立扩展磁盘使用。
技术实现思路
1、本专利提出一种基于云盘制作镜像缓存加速容器启动的方法。对于基于serverless部署的应用,拉取镜像、解析镜像准备容器rootfs的耗时显得尤为突出。且对于实例扩容,拉取镜像、解压、准备容器启动根目录是重复的工作,把这些重复工作压缩或减少可大幅降低容器实例启动耗时。同时,基于ceph的分布式存储在集群内部挂载可实现低延迟访问,对比需要访问外部网络远程仓库,访问内部网络分布式存储耗时可忽略,实现高速读取文件。在serverless平台部署应用时,开发人员会遇到如下问题:1、启动容器拉取镜像,准备容器镜像时等待较长时间,无法满足serverless对比普通kubernetes集群快速启动弹性伸缩的特点;2、在遇到流量突涨时,无法快速增加容器实例应对流量冲击。
2、本专利尝试使用块存储快照能力保存容器根目录快照,在启动容器时使用云盘快照生成磁盘实例,并挂载到本地目录,使用挂载磁盘制作容器启动目录,缩减从远程镜像仓库拉取镜像文件、解压等耗时,实现容器秒级启动,弹性伸缩容。
3、本专利技术的技术方案如下:
4、一种基于云盘制作镜像缓存加速容器启动的方法,该方法包括如下步骤:
5、s1、利用kubernetes customresource和operator模式进行镜像缓存管理;
6、s2、利用云盘功能和云盘快照功能完成镜像缓存制作与使用。
7、本专利技术进一步的改进在于,所述s1中镜像缓存管理包括以下具体步骤:
8、s11、创建kubernetes imagecache customresourcedefinition配置文件,并加载到kubernetes集群中;
9、s12、在创建pod时,查询imagecache列表,与pod镜像比较,镜像名称与版本相同则匹配镜像缓存,更新imagecache状态,否则不匹配,新建镜像缓存imagecache;
10、s13、删除镜像缓存,使用kubernetes kubectl delete命令删除customresource,并删除云盘快照;
11、s14、删除过期镜像缓存,kubernetes集群内独立启动cronjob容器,比较imagecache的createtime+retentiondays是否大于当前时间,是则更新为删除状态并执行删除操作。
12、本专利技术进一步的改进在于,所述s1中customresource定义镜像缓存必要属性,具体内容包含镜像缓存id、镜像名称、所需磁盘容量大小。
13、本专利技术进一步的改进在于,所述s1中operator负责管理customresource生命周期,并在不同状态完成不同工作。
14、本专利技术进一步的改进在于,所述s2中镜像缓存制作包括以下具体步骤:
15、s21、在新建pod时,通过pod annotation标记容器进行新建镜像缓存或使用镜像缓存操作;
16、s22、新建镜像缓存,创建新的imagecache customresource,imagecacheoperator接收到customresource事件后开始施工制作镜像缓存。
17、本专利技术进一步的改进在于,所述s21中通过pod annotation标记容器进行新建镜像缓存或使用镜像缓存操作的具体内容为:若命中镜像缓存,则添加annotation,key为example.com/matched-image-cache,值为镜像缓存id,新建镜像缓存时,则添加annotation,key为example.com/imc-id,值为镜像缓存id。
18、本专利技术进一步的改进在于,所述s22包括以下具体步骤:
19、s221、生成新的云盘实例,挂载到pod所在主机镜像缓存目录`/data/imc-xxx`;
20、s222、在pod容器启动后,查询容器snapshot信息,复制snapshot子目录至`/data/imc-xxx/snapshots`下,复制snapshot组件metadata.db文件至镜像缓存目录;
21、s223、使用ctr image export命令导出镜像压缩包至`/data/imc-xxx`目录;
22、s224、使用`/data/imc-xxx`目录文件生成云盘快照。
23、本专利技术进一步的改进在于,所述s2中镜像缓存使用的具体内容为:更新imagecache customresource lastmatched字段为podname,imagecache operator收到更新本文档来自技高网...
【技术保护点】
1.一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:包括以下具体步骤:
2.根据权利要求1所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述S1中镜像缓存管理包括以下具体步骤:
3.根据权利要求2所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述S1中CustomResource定义镜像缓存必要属性,具体内容包含镜像缓存ID、镜像名称、所需磁盘容量大小。
4.根据权利要求3所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述S1中Operator负责管理CustomResource生命周期,并在不同状态完成不同工作。
5.根据权利要求4所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述S2中镜像缓存制作包括以下具体步骤:
6.根据权利要求5所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述S21中通过Pod Annotation标记容器进行新建镜像缓存或使用镜像缓存操作的具体内容为:若命中镜像缓存,则添加Annotation,key为e
7.根据权利要求6所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述S22包括以下具体步骤:
8.根据权利要求7所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述S2中镜像缓存使用的具体内容为:更新ImageCache CustomResource LastMatched字段为PodName,ImageCache Operator收到更新事件后开始施工为容器准备镜像缓存。
9.根据权利要求8所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述S2中镜像缓存使用包括以下具体步骤:
10.根据权利要求9所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述S2中镜像缓存使用时,以镜像缓存云盘快照生成云盘实例,挂载在Node所在主机上,containerd以云盘实例文件制作容器rootfs。
...【技术特征摘要】
1.一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:包括以下具体步骤:
2.根据权利要求1所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述s1中镜像缓存管理包括以下具体步骤:
3.根据权利要求2所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述s1中customresource定义镜像缓存必要属性,具体内容包含镜像缓存id、镜像名称、所需磁盘容量大小。
4.根据权利要求3所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述s1中operator负责管理customresource生命周期,并在不同状态完成不同工作。
5.根据权利要求4所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述s2中镜像缓存制作包括以下具体步骤:
6.根据权利要求5所述的一种基于云盘制作镜像缓存加速容器启动的方法,其特征在于:所述s21中通过pod annotation标记容器进行新建镜像缓存或使用镜像缓存操作的具体内容为:若命中镜像缓存,则添加annotation,key为...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。