CN116339926A - 一种ats软件的容器化部署方法 - Google Patents
一种ats软件的容器化部署方法 Download PDFInfo
- Publication number
- CN116339926A CN116339926A CN202310572719.1A CN202310572719A CN116339926A CN 116339926 A CN116339926 A CN 116339926A CN 202310572719 A CN202310572719 A CN 202310572719A CN 116339926 A CN116339926 A CN 116339926A
- Authority
- CN
- China
- Prior art keywords
- file
- configuration data
- software
- container
- ats
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000009434 installation Methods 0.000 claims abstract description 17
- 230000001419 dependent effect Effects 0.000 claims abstract description 4
- 238000012856 packing Methods 0.000 claims abstract description 4
- 230000002441 reversible effect Effects 0.000 claims description 13
- 230000006835 compression Effects 0.000 claims description 12
- 238000007906 compression Methods 0.000 claims description 9
- 238000013144 data compression Methods 0.000 claims description 6
- 238000007726 management method Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 3
- 230000006855 networking Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 7
- 101100513046 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) eth-1 gene Proteins 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种ATS软件的容器化部署方法,该方法包括:配置容器的网络环境,以实现ATS双网冗余环境;在容器集群中,每个容器被视为一个节点,其为控制节点或工作节点;将ATS软件的安装包及其配置数据上传至容器集群中控制节点的目录中;将ATS软件及其依赖的基础环境打包成Docker镜像并将其推送到镜像仓库中;实现ATS软件在控制节点和工作节点的自动部署;实现ATS软件的配置数据在不同工作节点之间共享。本发明能够提高部署效率、可靠性和安全性,且方便快速扩展和管理以及具有较高的灵活性和可移植性。
Description
技术领域
本发明涉及软件部署技术领域,特别是一种ATS软件的容器化部署方法。
背景技术
现有的ATS服务端软件一般是双机双网运行,每个计算机都要配一套各自的配置数据,在部署的时候通常使用手动安装和复制粘贴的方式,这种方式存在人工操作复杂、耗时、易出错等问题。
近年来,随着云计算、大数据和人工智能等技术在城市轨道交通行业的发展应用,基于新技术的ATS服务越来越受到关注,新技术的ATS服务通常采用分布式架构、容器化部署、消息队列通信、和分布式计算等技术,具有更高的可扩展性和可维护性。这种技术实现的服务支持多节点的集群无状态运行,通过运行在容器集群中实现资源的弹性伸缩,提高了软件服务的安全隔离性和灵活性。
但是基于新技术的软件也对容器集群多个节点的部署带来了挑战,并且ATS服务端往往需要的配置数据比较复杂,容器内多个节点对同一份配置的依赖读写,同时经常会有需要动态扩展减缩节点的情况,如果用传统方式会大大增加安装部署工作。
发明内容
鉴于此,本发明提供一种ATS软件的容器化部署方法,以解决上述技术问题。
本发明公开了一种ATS软件的容器化部署方法,适用于容器集群,其包括:所述容器集群包括控制节点和工作节点;其中,控制节点用于负责管理工作节点;控制节点和工作节点被用于部署ATS软件;所述方法包括:
步骤1:配置容器的网络环境,以实现ATS双网冗余环境;在容器集群中,每个容器被视为一个节点,其为控制节点或工作节点;
步骤2:将ATS软件的安装包及其配置数据上传至容器集群中控制节点的目录中;
步骤3:将ATS软件及其依赖的基础环境打包成Docker镜像并将其推送到镜像仓库中;
步骤4:实现ATS软件在控制节点和工作节点的自动部署;
步骤5:实现ATS软件的配置数据在不同工作节点之间共享。
进一步地,在所述步骤1中:
每个容器均有一个虚拟网卡,通过虚拟网卡实现与其他容器和外部网络通信;实现ATS双网冗余环境需要对容器的宿主机网卡进行配置,通过运行配置网卡的脚本,能够实现配置容器宿主机的双网卡IP、ATS软件所需的直连网IP;其中,所述容器集群包括多个容器。
进一步地,在所述步骤2中:
在容器集群中,控制节点通过命令行脚本和API接口方法将ATS软件的安装包和配置数据上传到控制节点的目录中。
进一步地,所述步骤3包括:
基于Docker命令生成Dockerfile文件,该Dockerfile文件包含从基础镜像构建新镜像的指令;
基于Linux的压缩软件将ATS软件的安装包及其配置数据打包成压缩文件,并使用Linux内置命令将其复制到Dockerfile文件所在的目录下,将压缩文件复制到镜像中;
在Dockerfile文件中,安装所需的软件和库文件,并将其配置到对应的位置;基于Docker命令配置ATS软件及其配置数据的环境变量,环境变量包括软件执行文件的目录、当前系统默认语言、共享库的搜索路径、软件开机启动;
在Dockerfile文件中,基于EXPOSE指令设置容器的端口号,该端口号用于在运行容器时将端口映射到主机上,以便从主机访问容器中的应用程序;
从Dockerfile文件构建镜像,预设镜像名称和标签,生成本地镜像,并推送到镜像仓库,获得镜像仓库中的镜像地址。
进一步地,所述步骤4包括:
步骤41:确定部署ATS软件所需的部署镜像地址;
步骤42:通过执行已确定的部署镜像地址的脚本,自动部署ATS软件到对应的工作节点。
进一步地,所述步骤41包括:
部署镜像地址包括每个工作节点的端口属性,镜像包地址以及每个工作节点的配置信息以及需要使用的镜像;所述部署镜像地址为镜像仓库地址拉取到的压缩包文件,执行脚本为基于Kubernates管理工具配置出的YAML文件。
进一步地,所述步骤42包括:
在执行YAML文件之前,Kubernates管理工具会验证文件的语法,以防止在执行时出现错误;
执行YAML文件,使用Kubernates命令解析YAML文件并将其部署到Kubernetes集群中。
进一步地,所述步骤5包括:
从配置数据目录拉取配置数据压缩包,并将该配置数据压缩包推送至NFS服务端,在NFS服务端的目录解压配置数据;
在每个工作节点配置安装NFS客户端,并执行自动脚本把ATS软件所需的目录映射到NFS服务端目录,实现每个工作节点的ATS软件获取同一份配置数据,以便同时运行多个所述工作节点中的ATS软件。
进一步地,所述步骤5具体包括:
配置NFS服务端:首先需要在NFS服务端上配置共享目录,以便工作节点从该共享目录中读取配置数据文件,挂载需要共享的目录,并在NFS服务端的配置文件中要共享的目录和允许访问的NFS客户端的IP地址;
推送配置数据文件:基于Linux系统内置命令配置数据文件推送至NFS服务端的共享目录中,同时调用内置命令把配置数据文件复制到共享目录中;
配置工作节点:在工作节点上,配置NFS客户端,以便从NFS服务端上读取配置数据文件;挂载共享目录,并在NFS客户端的配置文件中共享目录的挂载选项和NFS服务端的IP地址;
重启工作节点:配置好每个NFS客户端的挂载文件后,重启工作节点,以使其重新读取并挂载共享目录;
在工作节点中使用配置数据文件:共享目录被挂载到工作节点上后,在容器中正常使用配置数据文件;
实现配置数据的自动部署,并且将配置文件存储到网络目录,共享给每个工作节点。
进一步地,在所述步骤1之前,还包括:
通过反向代理服务为所述容器集群中的多个工作节点提供负载均衡以及使所述多个工作节点具备冗余热备能力。
由于采用了上述技术方案,本发明具有如下的优点:
1.提高部署效率和可靠性:将软件和数据融合在一起,可以减少部署过程中的手动操作和出错的可能性,从而提高部署效率和可靠性。
2.方便快速扩展:本方法可以快速地创建、启动和停止多个容器,方便进行快速的扩展和收缩。
3.管理方便:本方法可以方便地进行管理和监控,可以通过容器编排工具进行自动化操作,如扩容、升级等。
4.灵活性和可移植性:本方法可以使应用程序更加灵活和可移植,不受底层环境的影响,可以在任何支持容器化技术的环境中部署和运行。
5.提高安全性:将软件和配置数据融合在一起,可以更好地保护数据安全,避免数据被恶意攻击或者盗取。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种ATS软件的容器化部署框架示意图;
图2为本发明实施例的通过反向代理部署工作节点的示意图;
图3为本发明实施例的一种ATS软件的容器化部署方法的流程示意图。
具体实施方式
结合附图和实施例对本发明作进一步说明,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
基于ATS服务在容器集群环境的安装部署节点较多,配置数据复杂,且需要支持动态扩展。本发明提出一种ATS软件的容器化部署方法,以解决上述问题。参见图1和图3,本发明的技术方案包括:
S1:配置容器的网络环境,以实现ATS双网冗余环境;在容器集群中,每个容器被视为一个节点,其为控制节点或工作节点;
具体地,对容器的双网环境执行配置网卡的脚本,包括配置双网卡IP,ATS软件所需直连网IP。通过修改Linux系统文件,自动配置控制节点和工作节点的IP的方法是:
在/etc/network/interfaces中添加如下配置:
auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
auto eth1
iface eth1 inet static
address 192.168.1.10
netmask 255.255.255.0
其中,auto eth0和auto eth1表示让系统在启动时自动启用这两个网卡。ifaceeth0和iface eth1表示接下来的配置是针对哪个网卡的。inet static表示使用静态IP地址,而不是DHCP分配的地址。address表示IP地址,netmask 表示子网掩码。
保存配置文件并退出。
重启网络服务或者重启系统。
在执行上述步骤后,系统会自动为eth0和eth1配置IP地址。如果需要配置更多的网卡,可以按照类似的方法在配置文件中添加更多的配置。
S1是为了确保容器网络环境配置正确,以便后续的自动部署操作。
自动配置IP的优点:
提高了网络配置的自动化程度,减少了手动配置的工作量。
减少了错误和故障的发生,提高了网络的稳定性和可靠性。
为多网卡的服务器提供了方便的管理和配置方式,可以根据需要灵活配置多个网卡的IP地址。
可以提高网络的安全性,防止未经授权的主机接入网络。
S2:将ATS软件的安装包及其配置数据上传至容器集群中控制节点的目录中;
具体地,在容器集群中,控制节点通过命令行脚本和相关API接口方法将ATS软件的安装包和配置数据上传到控制节点的目录中。
S1和S2是自动部署的准备条件。
S3:将ATS软件及其依赖的基础环境打包成Docker镜像并将其推送到镜像仓库中;
上传编译好的安装包,配置数据文件到容器控制节点的目录。这一步是为了准备软件安装所需的文件,包括ATS软件安装包和配置文件等。
1)基于Docker命令生成一个Dockerfile文件,该文件包含从基础镜像构建新镜像的指令。在Dockerfile文件中,可以确定镜像的环境、ATS软件和数据的安装路径等;
2)基于Linux的压缩软件把ATS软件的安装包及其配置数据打包成一个压缩文件,并使用Linux内置命令将其复制到Dockerfile文件所在的目录下,将压缩文件复制到镜像中;
3)在Dockerfile文件中,使用RUN指令安装所需的软件和库文件,并将其配置到正确的位置。可以使用ENV指令设置环境变量,设置软件和数据的环境变量;
4)在Dockerfile文件中,使用EXPOSE指令设置容器的端口号。这是为了在运行容器时将端口映射到主机上,以便从主机访问容器中的应用程序;
5)Docker命令构建镜像。使用docker build命令从Dockerfile文件构建镜像,预设镜像名称和标签。
对上传的安装包和配置数据打包成Docker镜像,并推送到镜像仓库。这一步是为了将准备好的软件安装所需的文件打包成镜像,以便后续的自动部署操作使用。
S4:实现ATS软件在控制节点和工作节点的自动部署;
S41:离线配置部署方法。
ATS软件部署需要的YAML文件,YAML文件包括每个工作节点的端口属性,镜像包地址等。这一步是为了准备ATS软件自动部署所需的部署文件,包括每个工作节点的配置信息以及需要使用的镜像等。
确定对象的类型和元数据:首先需要确定对象的类型和元数据,apiVersion、kind、metadata等字段。这些字段通常出现在文件的顶部,并且是必须的。
确定对象的规格:在YAML文件中,需要确定对象的规格,即它的属性和配置信息。这通常出现在文件的中部,由spec字段来确定。
缩进方法:YAML文件中使用缩进来表示对象之间的层次关系。在YAML文件中,通常使用两个空格作为缩进。
对象间的分隔符:在YAML文件中,使用连续的三个横杠(---)作为不同对象的分隔符。
简化表示法:Kubernetes提供了许多缩写和简化表示法,以使YAML文件更易于编写和阅读。例如,可以使用简写的字段名、布尔值、环境变量等。
部署多个对象:可以在同一个YAML文件中确定和部署多个Kubernetes对象。每个对象都需要按照上述方法进行确定。
使用YAML格式来描述对象的类型、元数据和规格,使用缩进来表示对象之间的层次关系,并使用连续的三个横杠作为不同对象的分隔符。
S42:执行YAML部署脚本,实现软件在控制节点和工作节点的自动部署。通过执行预确定的YAML部署脚本来自动部署ATS软件到对应的工作节点。
步骤:1)在执行YAML文件之前,使用kubectl apply命令中的--dry-run和--validate选项来验证文件的正确性和语法。帮助防止在执行时出现错误。
2)执行YAML文件:kubectl apply命令执行YAML文件,解析YAML文件并将其部署到Kubernetes集群中。
3)诊断查看部署状态:可以使用kubectl get命令查看已部署的Kubernetes对象的状态。例如,可以使用以下命令查看Pod的状态。
S4实现了ATS软件的自动部署。
S5:实现ATS软件的配置数据在不同工作节点之间共享。
从配置数据目录拉取配置数据压缩包推送到NFS服务端主机,在NFS服务端主机目录解压配置数据。这一步是为了将配置数据推送到NFS服务端主机,以便每个工作节点都能够获取到相同的配置数据。在每个工作节点配置安装NFS客户端,并执行自动脚本把ATS软件所需的目录映射到NFS服务端主机目录,实现每个工作节点的ATS软件对同一份配置数据的获取。
实施步骤如下:
1)配置NFS服务端:首先需要在NFS服务端上配置共享目录,以便容器的工作节点可以从中读取配置数据文件。挂载要共享的目录,并在/etc/exports文件中要共享的目录和允许访问的NFS客户端IP地址。
2)推送配置数据文件:基于Linux系统内置命令配置数据文件推送到NFS服务端共享目录中,调用内置命令,例如cp、scp 或 rsync命令,将配置数据文件复制到共享目录中。
3)配置容器工作节点:在容器工作节点上,配置NFS客户端,以便从NFS服务端上读取配置数据文件。使用mount命令挂载共享目录,并在/etc/fstab文件中共享目录的挂载选项和NFS服务端的IP地址。
4)重启容器工作节点:配置好每个NFS客户端的挂载文件后,重启容器工作节点,以使其重新读取并挂载共享目录。重启工作节点或者重启Docker服务。
5)在容器中使用配置数据文件:共享目录被挂载到容器工作节点上后,在容器中正常使用配置数据文件。
实现了配置数据的自动部署,并且持久化存储到网络目录,共享给每个工作节点。
在一个可选的实施例中,在S1之前,还包括:
参见图2,通过反向代理服务为所述容器集群中的多个工作节点提供负载均衡和节点冗余热备能力。
其中,反向代理设置:
反向代理(Reverse Proxy)是指代理服务器接受客户端的请求,并将请求转发给后端的服务器。与传统的代理服务器不同,传统的代理服务器是客户端向代理服务器发送请求,代理服务器再将请求转发给目标服务器。反向代理可以隐藏后端服务器的真实IP地址,提高了安全性和可扩展性,同时也可以进行负载均衡等操作。
对于实现 HTTP 反向代理,可以使用常见的代理服务器软件,例如 Nginx、Apache等,通过配置反向代理方案来实现。以 Nginx 为例,可以在 Nginx 的配置文件中添加类似如下的配置来实现反向代理:
location / {
proxy_pass http://backend_server;
}
其中 backend_server 是后端服务器的地址。这样,当客户端请求 http://proxy_server/some/path 时,Nginx 会将请求转发给 http://backend_server/some/path,并将响应返回给客户端。
ATS服务端软件有些协议是UDP方式,实现UDP反向代理的方法:
利用Haproxy将udp报文转发到多个工作节点,并可以负载均衡。
类似配置策略:
listen my_udp_proxy
mode udp
balance roundrobin
server backend1 backend_server_1:1234
server backend2 backend_server_2:1234
反向代理的优点:
隐藏后端服务器的真实IP地址,提高了安全性。
可以进行负载均衡,将请求均衡地分发到多台服务器,提高了性能和可用性。
可以进行缓存,提高了访问速度和响应性能。
通过反向代理服务器进行访问控制,可以实现更灵活的访问权限控制。
本发明采用离线文件来描述ATS软件部署所需的基础环境依赖、端口和镜像包等信息,然后将对应的shell脚本和yaml文件应用到容器集群中,实现ATS软件在容器环境的自动部署。提高部署效率,避免人为操作错误。并且使用Docker镜像将ATS软件打包从而减少了对系统资源的占用,提高了系统的运行效率和资源利用率。
通过将ATS软件的配置数据保存在NFS服务端上,并通过NFS客户端在每个工作节点上进行挂载,实现数据的共享。避免了将配置数据硬编码到镜像中,提高了容器的可移植性,同时保证了配置数据的可用性,即使容器Pod在不同的工作节点上漂移,也能够保证配置数据的访问。
ATS容器服务的高可用。解决了因容器pod漂移导致的配置数据不能固定到一个工作节点的问题。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种ATS软件的容器化部署方法,适用于容器集群,其特征在于,包括:所述容器集群包括控制节点和工作节点;其中,控制节点用于负责管理工作节点;控制节点和工作节点被用于部署ATS软件;所述方法包括:
步骤1:配置容器的网络环境,以实现ATS双网冗余环境;在容器集群中,每个容器被视为一个节点,其为控制节点或工作节点;
步骤2:将ATS软件的安装包及其配置数据上传至容器集群中控制节点的目录中;
步骤3:将ATS软件及其依赖的基础环境打包成Docker镜像并将其推送到镜像仓库中;
步骤4:实现ATS软件在控制节点和工作节点的自动部署;
步骤5:实现ATS软件的配置数据在不同工作节点之间共享。
2.根据权利要求1所述的方法,其特征在于,在所述步骤1中:
每个容器均有一个虚拟网卡,通过虚拟网卡实现与其他容器和外部网络通信;实现ATS双网冗余环境需要对容器的宿主机网卡进行配置,通过运行配置网卡的脚本,能够实现配置容器宿主机的双网卡IP、ATS软件所需的直连网IP;其中,所述容器集群包括多个容器。
3.根据权利要求1所述的方法,其特征在于,在所述步骤2中:
在容器集群中,控制节点通过命令行脚本和API接口方法将ATS软件的安装包和配置数据上传到控制节点的目录中。
4.根据权利要求1所述的方法,其特征在于,所述步骤3包括:
基于Docker命令生成Dockerfile文件,该Dockerfile文件包含从基础镜像构建新镜像的指令;
基于Linux的压缩软件将ATS软件的安装包及其配置数据打包成压缩文件,并使用Linux内置命令将其复制到Dockerfile文件所在的目录下,将压缩文件复制到镜像中;
在Dockerfile文件中,安装所需的软件和库文件,并将其配置到对应的位置;基于Docker命令配置ATS软件及其配置数据的环境变量,环境变量包括软件执行文件的目录、当前系统默认语言、共享库的搜索路径、软件开机启动;
在Dockerfile文件中,基于EXPOSE指令设置容器的端口号,该端口号用于在运行容器时将端口映射到主机上,以便从主机访问容器中的应用程序;
从Dockerfile文件构建镜像,预设镜像名称和标签,生成本地镜像,并推送到镜像仓库,获得镜像仓库中的镜像地址。
5.根据权利要求1所述的方法,其特征在于,所述步骤4包括:
步骤41:确定部署ATS软件所需的部署镜像地址;
步骤42:通过执行已确定的部署镜像地址的脚本,自动部署ATS软件到对应的工作节点。
6.根据权利要求5所述的方法,其特征在于,所述步骤41包括:
部署镜像地址包括每个工作节点的端口属性,镜像包地址以及每个工作节点的配置信息以及需要使用的镜像;所述部署镜像地址为镜像仓库地址拉取到的压缩包文件,执行脚本为基于Kubernates管理工具配置出的YAML文件。
7.根据权利要求6所述的方法,其特征在于,所述步骤42包括:
在执行YAML文件之前,Kubernates管理工具会验证文件的语法,以防止在执行时出现错误;
执行YAML文件,使用Kubernates命令解析YAML文件并将其部署到Kubernetes集群中。
8.根据权利要求1所述的方法,其特征在于,所述步骤5包括:
从配置数据目录拉取配置数据压缩包,并将该配置数据压缩包推送至NFS服务端,在NFS服务端的目录解压配置数据;
在每个工作节点配置安装NFS客户端,并执行自动脚本把ATS软件所需的目录映射到NFS服务端目录,实现每个工作节点的ATS软件获取同一份配置数据,以便同时运行多个所述工作节点中的ATS软件。
9.根据权利要求1所述的方法,其特征在于,所述步骤5具体包括:
配置NFS服务端:首先需要在NFS服务端上配置共享目录,以便工作节点从该共享目录中读取配置数据文件,挂载需要共享的目录,并在NFS服务端的配置文件中预设要共享的目录和允许访问的NFS客户端的IP地址;
推送配置数据文件:基于Linux系统内置命令配置数据文件推送至NFS服务端的共享目录中,同时调用内置命令把配置数据文件复制到共享目录中;
配置工作节点:在工作节点上,配置NFS客户端,以便从NFS服务端上读取配置数据文件;挂载共享目录,并在NFS客户端的配置文件中的共享目录的挂载选项和NFS服务端的IP地址;
重启工作节点:配置好每个NFS客户端的挂载文件后,重启工作节点,以使其重新读取并挂载共享目录;
在工作节点中使用配置数据文件:共享目录被挂载到工作节点上后,在容器中正常使用配置数据文件;
实现配置数据的自动部署,并且将配置文件存储到网络目录,共享给每个工作节点。
10.根据权利要求1所述的方法,其特征在于,在所述步骤1之前,还包括:
通过反向代理服务为所述容器集群中的多个工作节点提供负载均衡以及使所述多个工作节点具备冗余热备能力。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310572719.1A CN116339926B (zh) | 2023-05-22 | 2023-05-22 | 一种ats软件的容器化部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310572719.1A CN116339926B (zh) | 2023-05-22 | 2023-05-22 | 一种ats软件的容器化部署方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116339926A true CN116339926A (zh) | 2023-06-27 |
CN116339926B CN116339926B (zh) | 2023-08-08 |
Family
ID=86889741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310572719.1A Active CN116339926B (zh) | 2023-05-22 | 2023-05-22 | 一种ats软件的容器化部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116339926B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790483A (zh) * | 2016-12-13 | 2017-05-31 | 武汉邮电科学研究院 | 基于容器技术的Hadoop集群系统及快速构建方法 |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
CN111343004A (zh) * | 2020-02-11 | 2020-06-26 | 苏宁金融科技(南京)有限公司 | 基于Docker的Fabric网络远程部署方法、装置和系统 |
US20210224059A1 (en) * | 2019-01-29 | 2021-07-22 | Salesforce.Com, Inc. | Cloud services release orchestration with a reusable deployment pipeline |
US11385807B1 (en) * | 2019-12-31 | 2022-07-12 | Virtuozzo International Gmbh | System and method for recovering a node in a cloud infastructure after an intrusion |
-
2023
- 2023-05-22 CN CN202310572719.1A patent/CN116339926B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790483A (zh) * | 2016-12-13 | 2017-05-31 | 武汉邮电科学研究院 | 基于容器技术的Hadoop集群系统及快速构建方法 |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
US20210224059A1 (en) * | 2019-01-29 | 2021-07-22 | Salesforce.Com, Inc. | Cloud services release orchestration with a reusable deployment pipeline |
US11385807B1 (en) * | 2019-12-31 | 2022-07-12 | Virtuozzo International Gmbh | System and method for recovering a node in a cloud infastructure after an intrusion |
CN111343004A (zh) * | 2020-02-11 | 2020-06-26 | 苏宁金融科技(南京)有限公司 | 基于Docker的Fabric网络远程部署方法、装置和系统 |
Non-Patent Citations (2)
Title |
---|
ARIF AHMED等: "Docker Image Sharing in Distributed Fog Infrastructures", 《2019 IEEE INTERNATIONAL CONFERENCE ON CLOUD COMPUTING TECHNOLOGY AND SCIENCE (CLOUDCOM)》, pages 135 - 142 * |
刘泰玮: "基于Docker的容器集群部署管理平台的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 308 * |
Also Published As
Publication number | Publication date |
---|---|
CN116339926B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wöbker et al. | Fogernetes: Deployment and management of fog computing applications | |
JP5142678B2 (ja) | デプロイ方法およびシステム | |
US7363514B1 (en) | Storage area network(SAN) booting method | |
CN113296792B (zh) | 存储方法、装置、设备、存储介质和系统 | |
CN111026414B (zh) | 一种基于kubernetes的HDP平台部署方法 | |
CN111538561B (zh) | 基于KVM虚拟化技术的OpenStack大规模集群部署测试的方法及系统 | |
CN111641719B (zh) | 基于Openstack的内网型负载均衡实现方法、存储介质 | |
CN102207859A (zh) | 解决方案部署方法、设备和系统 | |
WO2016106486A1 (en) | Method and apparatus for configuring a communication system | |
CN105450759A (zh) | 一种系统镜像的管理方法和装置 | |
CN113656147A (zh) | 一种集群部署方法、装置、设备及存储介质 | |
CN113810230A (zh) | 对容器集群中的容器进行网络配置的方法、装置及系统 | |
CN111857956A (zh) | 虚拟机启动方法及设备 | |
CN115686729A (zh) | 容器集群网络系统、数据处理方法、设备及计算机程序产品 | |
CN111459619A (zh) | 一种基于云平台实现服务的方法和装置 | |
Khalel et al. | Enhanced load balancing in kubernetes cluster by minikube | |
CN111913719A (zh) | 高可用软件的部署方法、设备、装置和计算机存储介质 | |
CN110795209B (zh) | 一种控制方法和装置 | |
CN113268254A (zh) | 一种集群系统安装方法、装置、电子设备及存储介质 | |
CN116339926B (zh) | 一种ats软件的容器化部署方法 | |
US11405277B2 (en) | Information processing device, information processing system, and network communication confirmation method | |
CN106790521B (zh) | 采用基于ftp的节点设备进行分布式组网的系统及方法 | |
CN115913778A (zh) | 一种基于边车模式的网络策略更新方法、系统及存储介质 | |
CN112351114B (zh) | 一种信息处理方法、装置以及存储介质 | |
CN114726719B (zh) | 网元操作系统部署方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |