具体实施方式
下面详细描述本申请的实施方式,实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请的实施方式,而不能理解为对本申请的实施方式的限制。
请参阅图1,本申请实施方式提供一种部署方法,部署方法包括:
步骤011:在第一系统下,搭建适用于第二系统环境的子系统;
具体地,如今市面上有多种操作系统,不同的操作系统能够满足人们不同的需求,因此在日常使用中,人们可能会根据需求使用多个操作系统。第一系统和第二系统为不同的操作系统,技术人员可能会在不同时间使用第一系统和第二系统来完成不同的需求,例如使用第一系统来满足生活需求,使用第二系统来满足开发需求。此时需要进行第一系统和第二系统的系统切换,但是过于频繁的系统切换会对技术人员的工作效率造成一定的影响。
例如,第一系统为windows系统,第二系统为Linux系统。Linux系统是一个基于可移植操作系统接口(Portable Operating System Interface,POSIX)的多用户、多任务、支持多线程和多中央处理器(Central Processing Unit,CPU)的操作系统,而由于Linux系统具有开放性、高安全性、和高稳定性等优点,Linux系统被广泛应用于多个领域中进行开发工作。然而在生活中,人们更多使用windows系统来满足生活需求。windows系统是美国微软公司以图形用户界面为基础研发的操作系统,主要运用于计算机、智能手机等设备,是全球应用最广泛的操作系统之一。对于需要使用Linux系统的技术人员而言,他们需要在windows系统和Linux系统中进行系统切换,才能满足生活和工作的需求,但频繁的切换并不利于技术人员的工作。
因此,为了便于技术人员快速便捷地使用第一系统和第二系统,可在第一系统下,创建用于第二系统环境的子系统。当第一系统为windows系统,第二系统为Linux系统时,子系统可为Windows Subsystem for Linux 2,简称wsl2。wsl2可以安装于第一系统,为在第一系统下进行开发的技术人员提供基于第二系统的开发环境,以便于技术人员在第一系统下快捷地使用基于第二系统的开发环境来进行第二系统的开发工作。
步骤012:在第一系统中创建子系统的工程;
具体地,在创建用于第二系统环境的子系统后,便可基于实际业务需求,在第一系统中创建需要的子系统的工程,以便于后续在第一系统下通过子系统的工程来进行第二系统的开发工作。
步骤013:以容器运行工程并将工程对应的容器绑定到第一系统的端口。
具体地,容器是一个视图隔离、资源可限制、独立文件系统的进程集合。所谓视图隔离就是能够看到部分进程以及具有独立的主机名等;控制资源使用率则是可以对于内存大小以及中央处理器(Central Processing Unit,CPU)使用个数等进行限制。容器就是一个进程集合,它将系统的其他资源隔离开来,具有自己独立的资源视图。因此,为了便于工程的运行和管理,本申请以容器运行工程,并将工程对应的容器绑定到第一系统的端口,如此子系统的工程的运行结果可通过绑定的第一系统的端口,在第一系统上显示出来,从而使得在第一系统上进行开发和测试子系统的工程变得简单。特别地,绑定的第一系统的端口可以是任一网卡端口,例如127.0.0.1的端口。
本申请实施方式的部署方法在第一系统下,搭建适用于第二系统环境的子系统,以在第一系统中搭建第二系统环境。然后在第一系统中创建子系统的工程,以容器运行工程并将工程对应的容器绑定到第一系统的端口,使得技术人员可利用绑定的第一系统的端口,在第一系统上开发和测试第二系统的工程,从而提高第二系统的工程的开发效率和测试效率。
请参阅图2,在某些实施方式中,在步骤013:以容器运行工程之前,部署方法包括:
步骤014:安装容器运行时。
具体地,容器运行时是一个可掌控容器运行的整个生命周期,用于创建和管理容器的软件,常见的容器运行时包括docker,docker可用于制定容器镜像格式、构建容器镜像、管理容器镜像、管理容器实例、运行容器、和实现容器镜像共享,其中容器镜像为容器运行时所需要的所有的文件集合。而子系统的工程是以容器的形式运行的。因此为了保证子系统的工程的正常运行,还需要在以容器运行工程前,安装容器运行时,保证在使用子系统的过程中,容器能够被顺利地创建和管理。
请参阅图3,在某些实施方式中,部署方法包括:
步骤015:部署容器集群管理平台到子系统;
步骤016:发布工程到容器集群管理平台。
具体地,容器集群管理平台,例如Kubernetes(简称K8S),提供了资源调度、部署管理、服务发现、扩容缩容、监控等一整套功能,目前已经得到广泛引用。容器集群管理平台主要是一种Linux系统技术,因此在Linux系统上运行容器集群管理平台是相当简单的,而使用windows系统的技术人员则需要搭建Linux系统环境才能在windows系统上使用容器集群管理平台。windows系统可为第一系统,Linux系统可为第二系统,本申请的第一系统中创建了用于第二系统环境的子系统,因此可将容器集群管理平台部署到子系统中,在部署完成后,可根据开发需要,发布工程到容器集群管理平台,容器管理平台便可开始处理工程。当工程处理完毕后,处理后的数据便可在第一系统显示出来,以提高使用第一系统的技术人员使用容器集群管理平台的效率,使得技术人员无需在使用容器集群管理平台时,无需额外设置第二系统,并将系统切换为第二系统,从而提高技术人员的开发效率并降低开发成本。
请参阅图4,在某些实施方式中,容器集群管理平台包括创建组件,创建组件用于创建容器集群管理平台的最小部署单元,步骤015:部署容器集群管理平台到子系统,包括:
步骤0151:基于容器运行时,以容器形式运行创建组件;
步骤0152:将创建组件的配置文件写入本地的预设文件夹并挂载到创建组件的容器中,以使得创建组件的容器作为守护进程。
具体地,容器集群管理平台通过管理最小部署单元来管理容器,其中一个最小部署单元中可运行一个或多个容器。而创建组件可进行最小部署单元的增删改查等操作。那么,为了实现对最小部署单元的管理,在部署容器集群管理平台到子系统时,首先基于容器运行时,以容器形式运行创建组件。
而为了保证容器集群管理平台的正常运行,还需要在里面部署守护进程,所谓守护进程是一个在后台运行并且不受任何终端控制的进程,用于执行特定的系统任务,例如守护进程可在程序停止运行后,立即重启停止运行的程序,从而避免程序停止运行给平台的正常运作带来的影响。创建组件是用于对最小部署单元进行增删改查等操作的,在容器集群管理平台运行期间,若创建组件停止运行,便无法对最小部署单元进行操作,导致容器集群管理平台难以运行下去。因此,需要将创建组件的容器作为守护进程。首先,将创建组件的配置文件写入本地的预设文件夹,并将创建组件的配置文件挂载到创建组件的容器中,然后做成系统服务(即执行指定系统功能的程序、例程或进程),如此便可使得创建组件的容器作为守护进程运行在容器集群管理平台中,使得创建组件能够在停止运行后立即重启,尽可能地减少创建组件停止运行的时间,保证最小部署单元能够得到有效的管理,从而保证容器集群管理平台的正常运行。
请参阅图5,在某些实施方式中,容器集群管理平台还包括创建组件和多个系统组件,多个系统组件包括不同功能的功能组件,步骤015:部署容器集群管理平台到子系统,还包括:
步骤0153:通过创建组件创建每个系统组件对应的静态的最小部署单元;及
步骤0154:基于系统组件对应的静态的最小部署单元,部署多个系统组件。
具体地,容器集群管理平台还包括多个系统组件,例如在Kubernetes中,系统组件包括kube-apiserver、kube-scheduler、kube-controller-manager、etcd组件和kube-proxy。kube-apiserver是容器集群管理平台的集群中各组件数据交互和通信的枢纽。kube-scheduler负责集群的最小部署单元的调度。kube-controller-manager包含一系列的控制器组件,用于监听、比较资源实际状态与期望状态是否一致,若不一致则进行协调工作使其最终一致。etcd组件为Kubernetes的元数据存储。kube-proxy为部署在每个节点上的网络代理组件。可以看到,多个系统组件包括不同功能的功能组件,且多个系统组件的配合维持着容器集群管理平台的正常运行。而这些系统组件的功能是基本不变的,因此创建组件需要先创建每个系统组件对应的静态的最小部署单元,并基于系统组件对应的静态的最小部署单元,部署多个系统组件,以使得容器集群管理平台可以通过系统组件实现一定的功能,且系统组件的稳定性较高,从而提高容器集群管理平台的运行稳定性。
请参阅图6,在某些实施方式中,步骤0154:基于系统组件对应的静态的最小部署单元,部署多个系统组件;包括:
步骤01541:加载系统组件的镜像;
步骤01542:生成系统组件的配置文件及证书;
步骤01543:将系统组件的对应的静态的最小部署单元的文件配置到创建组件的监听目录。
具体地,容器具有一个独立的文件系统,因为使用的是系统的资源,所以在容器的独立的文件系统内不需要具备内核相关的代码或者工具,只需要提供容器所需的文件,例如二进制文件和配置文件即可。只要容器运行时所需的文件集合都能够具备,那么这个容器就能够运行起来。而其中的配置文件可以为一些配置参数和初始设置,可以理解,在部署多个系统组件时,还需要生成系统组件的配置文件。容器运行时所需要的所有的文件集合称之为容器镜像。因此为了保证系统组件的正常运行,在部署多个系统组件时,需要加载系统组件的镜像。
为了保证服务器和客户端之间的安全性,容器集群管理平台可采用双向认证的方法,在服务器和客户端进行互动时,互相通过证明身份的证书来确定各自的身份。例如,组件A作为客户端访问组件B时,组件A需要给组件B提供客户端证书,而组件B需要给组件A提供服务器证书。在组件A和组件B都确认对方身份无误后,组件A便可访问组件B。因此,在部署多个系统组件时,为了保证系统组件和其他组件的访问能够正常运行,需要生成各系统组件对应的证书。
此外,系统组件对于容器集群管理平台而言是十分重要的,若系统组件停止运行,可能会导致容器集群管理平台的运行出现问题。因此,还需要将系统组件的对应的静态的最小部署单元的文件配置到创建组件的监听目录,以便于创建组件对系统组件的监控,当创建组件监控到系统组件停止运行后,可立即重启系统组件,从而防止系统组件长时间停止运行,导致容器集群管理平台的运行出现问题。
如此,在进行加载系统组件的镜像、生成系统组件的配置文件及证书和将系统组件的对应的静态的最小部署单元的文件配置到创建组件的监听目录等部署系统组件所需要的步骤后,可将系统组件部署到容器集群管理平台中,保证系统组件在容器集群管理平台中的顺利运行,从而提高容器集群管理平台的运行稳定性。
请参阅图7,在某些实施方式中,容器集群管理平台包括创建组件和扩展组件,步骤015:部署容器集群管理平台到子系统,包括:
步骤0155:通过创建组件创建扩展组件对应的最小部署单元;
步骤0156:基于扩展组件对应的最小部署单元,部署扩展组件。
具体地,由于容器集群管理平台是可扩展的,因此在将容器集群管理平台部署到子系统时,可根据业务需要部署需要的扩展组件。例如,容器集群管理平台可部署域名组件,例如Kube-DNS,来将服务注册到域名系统中,并给每个服务分配子域名,如此在容器集群管理平台的集群中便可通过名称访问服务,从而在容器集群管理平台中提供一种简单的服务注册发现与负载均衡方式。
或者,可通过部署网络模型,例如flannel和calico,来为容器集群管理平台来配置网络。其中,flannel可为每个使用容器集群管理平台的机器提供一个子网,也就是说容器集群管理平台的集群中的每个主机都有自己一个完整的子网,以降低容器集群管理平台的集群中的端口映射的复杂度。而calico的功能更为全面,不仅可提供主机和最小部署单元之间的网络连接,还涉及网络安全和管理。因此可根据实际需要,选择合适的网络模型来进行部署,以使得容器集群管理平台的通信能够正常运行。
亦或者,可部署搭建容器集群管理平台的用户界面,使得技术人员可以使用用户界面将容器化应用程序部署到容器集群管理平台的集群,对容器化的应用程序进行故障排除,以及管理集群资源。也可以使用用户界面来概述群集上运行的应用程序,以及创建或修改单个容器集群管理平台资源(例如部署、任务、守护进程等),从而提高容器集群管理平台的开发效果。
因此,若想使用扩展组件对应的功能,则首先需要通过创建组件在容器集群管理平台创建扩展组件对应的最小部署单元,并基于扩展组件对应的最小部署单元进行扩展组件的部署,以在容器集群管理平台上部署扩展组件,扩展容器集群管理平台的功能,从而扩展容器集群管理平台的使用场景。
请参阅图8,为便于更好的实施本申请实施方式的部署方法,本申请实施方式还提供一种部署装置10。该部署装置10包括第一创建模块11、第二创建模块12和绑定模块13。第一创建模块11用于在第一系统下,搭建适用于第二系统环境的子系统;第二创建模块12用于在第一系统中创建子系统的工程;绑定模块13用于以容器运行工程并将工程对应的容器绑定到第一系统的端口。
部署装置10还包括安装模块14。安装模块14用于安装容器运行时。
部署装置10还包括部署模块15和发布模块16。部署模块15用于部署容器集群管理平台到子系统;发布模块16用于发布工程到容器集群管理平台。
部署模块15具体用于基于容器运行时,以容器形式运行创建组件;将创建组件的配置文件写入本地的预设文件夹并挂载到创建组件的容器中,以使得创建组件的容器作为守护进程。
部署模块15具体用于通过创建组件创建每个系统组件对应的静态的最小部署单元;及基于系统组件对应的静态的最小部署单元,部署多个系统组件。
部署模块15具体用于加载系统组件的镜像;生成系统组件的配置文件及证书;及将系统组件的对应的静态的最小部署单元的文件配置到创建组件的监听目录。
部署模块15具体用于通过创建组件创建扩展组件对应的最小部署单元;及基于扩展组件对应的最小部署单元,部署扩展组件。
请参阅图9,本申请实施方式的计算机设备100包括处理器20。处理器20用于在第一系统下,创建用于第二系统环境的子系统;在第一系统中创建子系统的工程;及以容器运行工程并将工程对应的容器绑定到第一系统的端口。
可选地,处理器20还可用于执行上述任一实施方式的部署方法,为了简洁,在此不再赘述。
请参阅图10,本申请实施方式还提供了一种非易失性计算机可读存储介质300,其上存储有计算机程序310,计算机程序310被处理器20执行的情况下,实现上述任意一种实施方式的部署方法的步骤,为了简洁,在此不再赘述。
在本说明书的描述中,参考术语“某些实施方式”、“一个例子中”、“示例地”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
尽管上面已经示出和描述了本申请的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施方式进行变化、修改、替换和变型。