一种基于containerd容器的kubernetes集群的镜像构建方法技术

技术编号:37968022 阅读:11 留言:0更新日期:2023-06-30 09:43
本发明专利技术提供了一种基于containerd容器的kubernetes集群的镜像构建方法,包括如下步骤:通过继承podman容器的镜像信息来获取基础镜像,基于所述基础镜像构建至少一个开发语言的应用镜像;准备podman的第一配置文件,所述第一配置文件包括若干个镜像仓库、以及每个所述镜像仓库的存储位置;准备至少一个开发语言的第二配置文件,所述第二配置文件包括至少一个开发语言所依赖的配置环境;挂载所述第一配置文件和所述第二配置文件指定的目录到主机目录或分布式共享存储;编写应用的运维特征配置文件,所述运维特征配置文件包括设置应用的基础运维特征;在应用部署流水线中进行应用的CI流程和CD流程,以实现在kubernetes集群中的部署。部署。部署。

【技术实现步骤摘要】
一种基于containerd容器的kubernetes集群的镜像构建方法


[0001]本专利技术涉及计算机
,尤其涉及一种基于containerd容器的kubernetes集群的镜像构建方法。

技术介绍

[0002]由于docker容器引擎比kubernetes容器引擎发布得早,Docker本身不兼容CRI(容器运行时)接口,而docker官方并没有实现CRI的打算,同时也不支持容器的一些新需求,社区想要摆脱Dockershim的高维护成本。因此Kubernetesv1.20版本发布了,其中有一项重要变更,就是将对Docker的支持声明为了过期,在之后的v1.24版本中会直接移除。因此原有基于docker进行构建镜像的方法将无法在替换containerd后使用,因为containerd没有build命令,导致无法在kubernetes环境中直接构建镜像,需要安装如Buildkit+nerdctl等工具来实现镜像构建。
[0003]当前kubernetes替换容器运行时为container后,通常采用buildkit加nerdctl的方式实现镜像构建。主要的困难或缺点:一个是引入两个组件的使用资料缺乏,学习过程困难;另外引入的两个工具与原有构建工具存在巨大的差异,带来使用障碍。
[0004]因此,本领域技术人员都对于kubernetes替换容器运行时感到巨大的担忧和抗拒,导致很多人没有意愿进行kubernetes的新版本升级,很多新的功能则无法使用到。

技术实现思路

[0005]为了克服上述技术缺陷,本专利技术的目的在于提供一种基于containerd容器的kubernetes集群的镜像构建方法替换现有的container+buildkit+nerdctl方式。
[0006]本专利技术公开了一种基于containerd容器的kubernetes集群的镜像构建方法,包括如下步骤:通过继承podman容器的镜像信息来获取基础镜像,基于所述基础镜像构建至少一个开发语言的应用镜像;准备podman的第一配置文件,所述第一配置文件包括若干个镜像仓库、以及每个所述镜像仓库的存储位置;准备至少一个开发语言的第二配置文件,所述第二配置文件包括至少一个开发语言所依赖的配置环境;挂载所述第一配置文件和所述第二配置文件指定的目录到主机目录或分布式共享存储;编写应用的运维特征配置文件,所述运维特征配置文件包括设置应用的基础运维特征;在应用部署流水线中进行应用的CI流程和CD流程,以实现在kubernetes集群中的部署。
[0007]优选的,所述基于所述基础镜像构建至少一个开发语言的应用镜像包括:基于所述基础镜像构建至少一个应用镜像;分别为所述至少一个应用镜像添加所述至少一个开发语言所需的编译环境,并标记镜像构建标签。
[0008]优选的,所述至少一个开发语言包括Java、NodeJs、Golang中的至少一个;所述编译环境包括maven、Gradle、noddenpm、go中的至少一个。
[0009]优选的,所述若干个镜像仓库包括国内镜像仓库和本地私有镜像仓库。
[0010]优选的,所述准备至少一个开发语言的第二配置文件包括:配置所述本地私有仓
库和所述国内仓库。
[0011]优选的,所述基础运维特征包括以下任意一项或多项:端口、标签、副本数、所属命名空间、健康检查规则、暴露服务方式。
[0012]优选的,所述在应用部署流水线中进行应用的CI流程和CD流程之前,还包括:编写Jenkinsfile文件,以定义所述CI流程和所述CD流程的步骤。
[0013]优选的,所述CI流程包括:进行源代码拉取和静态代码扫描过程;根据所述基础运维特征来匹配编译环境以进行编译,所述编译环境包括开发语言环境和开发框架;基于编译结果完成镜像构建,并设置镜像名称和/或镜像识别标记,用于进行镜像拉取;将所构建的镜像推送到所述镜像仓库。
[0014]优选的,所述将所构建的镜像推送到所述镜像仓库包括:获取所述镜像仓库的访问凭证,所述访问凭证包括账号和密码;对镜像进行安全扫描并确认为安全状态。
[0015]优选的,所述CD流程包括:从所述镜像仓库中拉取镜像,并将所述运维特征配置文件部署到kubernetes集群中。
[0016]采用了上述技术方案后,与现有技术相比,具有以下有益效果:
[0017]1.本专利技术通过在containerd中引入podman容器来实现镜像的构建和镜像推送过程,由于podman容器的使用方式与docker命令基本是保持一致的,因此在引入podman后不会增加学习成本和使用障碍,可以快速切换到新的容器运行,降低学习成本和使用成本,从而降低使用者对于升级kubernetes的恐惧,保障了作为基础设施的ubernetes的易用性与先进性;
[0018]2.本专利技术的方案支持多语言,通过不同的工具镜像产生不同的构建容器环境,从而实现多语言的应用镜像构建,使用时根据标签选择对应的构建环境即可。无需引入三方具,降低集成成本和学习成本;且支持容器环境下的缓存,在容器中通过目录挂载实现构建数据缓存,从而减少构建时间,提升构建效率。容器中通过运行构建工具容器来实现业务应用的镜像构建。
附图说明
[0019]图1为本专利技术提供的基于containerd容器的kubernetes集群的镜像构建方法的流程示意图。
具体实施方式
[0020]以下结合附图与具体实施例进一步阐述本专利技术的优点。
[0021]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0022]在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0023]应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0024]在本专利技术的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于containerd容器的kubernetes集群的镜像构建方法,其特征在于,包括如下步骤:通过继承podman容器的镜像信息来获取基础镜像,基于所述基础镜像构建至少一个开发语言的应用镜像;准备podman的第一配置文件,所述第一配置文件包括若干个镜像仓库、以及每个所述镜像仓库的存储位置;准备至少一个开发语言的第二配置文件,所述第二配置文件包括至少一个开发语言所依赖的配置环境;挂载所述第一配置文件和所述第二配置文件指定的目录到主机目录或分布式共享存储;编写应用的运维特征配置文件,所述运维特征配置文件包括设置应用的基础运维特征;在应用部署流水线中进行应用的CI流程和CD流程,以实现在kubernetes集群中的部署。2.根据权利要求1所述的基于containerd容器的kubernetes集群的镜像构建方法,其特征在于,所述基于所述基础镜像构建至少一个开发语言的应用镜像包括:基于所述基础镜像构建至少一个应用镜像;分别为所述至少一个应用镜像添加所述至少一个开发语言所需的编译环境,并标记镜像构建标签。3.根据权利要求2所述的基于containerd容器的kubernetes集群的镜像构建方法,其特征在于,所述至少一个开发语言包括Java、NodeJs、Golang中的至少一个;所述编译环境包括maven、Gradle、noddenpm、go中的至少一个。4.根据权利要求1所述的基于containerd容器的kubernetes集群的镜像构建方法,其特征在于,所述若干个镜像仓库包括国内镜像仓库和本地私有镜像仓库。5.根据权利要求4所述的基于containerd容器的kubernet...

【专利技术属性】
技术研发人员:艾如飞闻金鸿黄忠龙王迅
申请(专利权)人:昭通亮风台信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1