CN113590146B - 服务器及容器升级方法 - Google Patents
服务器及容器升级方法 Download PDFInfo
- Publication number
- CN113590146B CN113590146B CN202110623442.1A CN202110623442A CN113590146B CN 113590146 B CN113590146 B CN 113590146B CN 202110623442 A CN202110623442 A CN 202110623442A CN 113590146 B CN113590146 B CN 113590146B
- Authority
- CN
- China
- Prior art keywords
- container
- target container
- target
- new
- template
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 230000008569 process Effects 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000007726 management method Methods 0.000 description 43
- 238000003860 storage Methods 0.000 description 10
- 102100033121 Transcription factor 21 Human genes 0.000 description 9
- 101150109289 tcf21 gene Proteins 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 101100438971 Caenorhabditis elegans mat-1 gene Proteins 0.000 description 2
- 101100491335 Caenorhabditis elegans mat-2 gene Proteins 0.000 description 2
- 101100495256 Caenorhabditis elegans mat-3 gene Proteins 0.000 description 2
- 101710119687 Transcription factor 21 Proteins 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000011065 in-situ storage Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/451—Execution arrangements for user interfaces
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明是关于一种服务器及容器升级方法,涉及计算机技术领域,本发明包括:在接收到针对目标容器的升级指令之后,若目标容器正在处理业务,且业务请求中携带的端口为目标容器的端口,则根据服务器中记录的目标容器的端口和目标容器的端口对应的容器标识,将业务请求发送给目标容器;并在确定出目标容器的升级内容为对容器模板进行升级之后,根据目标容器的升级内容中包含的容器模板,在包含目标容器的管理节点中创建新的容器。由于本发明能够在包含需要升级的容器的管理节点中创建新的容器,从而无需重新分配网络、挂载远程磁盘等操作,简化了升级过程。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种服务器及容器升级方法。
背景技术
在云平台集群环境,例如基于Kubernetes的容器云集群下,有大量的微服务,每个微服务可以有多个实例,以容器的形式分布式地运行于云平台的多台计算服务器宿主机上。
容器升级时,如果服务使用deployment部署,那么升级过程中Deployment会触发新版本ReplicaSet创建新的Pod,并删除旧版本Pod,旧版本的pod为包含进行升级容器的pod。在deployment操作过程中,原Pod对象被删除,新Pod被调度到另一个Node上,分配到一个新的IP,然后在Node上对进行升级的容器进行创建,同时创建原来的pod中没有升级的容器,并远程挂载新的pod的目录。
如果服务使用Statefulset部署,那么升级过程中StatefulSet会先删除旧Pod对象,等删除完成后用同样的名字在创建一个新的Pod对象。StatefulSet等到原先的pod对象完全从Kubernetes集群中被删除后,才会提交创建一个新的pod对象。而这个新的Pod也会被重新调度、分配IP、远程挂载新的pod的目录。
然而,对于容器模板升级时,由于容器可以直接根据容器模板建立,不涉及修改pod,如果依然使用上述方案进行升级,会导致重新分配网络、挂载远程磁盘,重新调度,从而导致升级操作比较繁琐。
发明内容
本发明提供一种服务器及容器升级方法,针对升级内容为容器模板升级时,可以在包含需要升级的容器的管理节点中创建新的容器,从而无需重新分配网络、挂载远程磁盘等操作,简化了升级过程。
第一方面,本发明实施例提供的一种服务器,包括:处理器和接收单元;
所述接收单元,用于接收针对目标容器的升级指令、以及接收所述业务请求;
所述处理器,用于在接收到针对目标容器的升级指令之后,判断所述目标容器是否正在处理业务;
若所述目标容器正在处理业务,且所述业务请求中携带的端口为所述目标容器的端口,则根据所述服务器中记录的所述目标容器的端口和所述目标容器的端口对应的容器标识,将所述业务请求发送给所述目标容器,以使所述目标容器继续处理业务;
并在确定出所述目标容器的升级内容为对容器模板进行升级之后,根据所述目标容器的升级内容中包含的容器模板,在包含所述目标容器的管理节点中创建新的容器;其中,所述容器模板中新的容器和目标容器的业务数据磁盘存储目录相同,所述容器模板中记录的新的容器的端口与所述目标容器的端口相同,新的容器和所述目标容器的容器标识不同。
上述服务器,能够在确定对容器进行升级后,如果升级内容为对容器模板进行升级,由于容器模板不涉及对管理节点的修改,是对容器的修改,所以,本发明根据需要升级的容器的升级内容中包含的容器模板,在需要升级的容器所在的管理节点中创建升级后的容器,由于容器模板中指示的新的容器的端口和需要升级的容器的端口相同,同时,容器模板中新的容器和目标容器的业务数据磁盘存储目录相同,从而使得用户请求能够正常找到服务的端口,同时在原地升级,管理节点未发生变化,无需重新拉取资源创建管理节点中没有升级的容器,无需重新分配IP地址以及进行挂载流程,简化了升级过程,同时根据服务器中记录的容器的端口和容器标识,能够使得业务处理不收容器升级的影响。
在一种可能的实现方式中,所述处理器还用于:
检测所述目标容器的升级内容的注解信息是否为容器模板的标识;
如果是,则确定所述目标容器的升级内容为对容器模板进行升级。
上述服务器,能够通过检测注解信息中是否为容器模板的标识,确定升级内容是否为对容器模板进行升级,方便了确定升级内容的过程。
在一种可能的实现方式中,所述处理器具体用于:
根据所述目标容器的每种升级内容对应的标识,生成选择界面进行显示;
将用户在所述选择界面选择的容器模板的标识置于所述注解信息中。
上述服务器,提供给用户选择升级内容的机会,考虑到用户自身的需要,增加了用户体验。
在一种可能的实现方式中,所述处理器还用于:
暂停部署进程,其中,所述部署进程用于删除包含所述目标容器的管理节点,以及执行创建新的管理节点。
上述服务器,使得服务器不用执行删除包含目标容器的管理节点,以及执行创建新的管理节点,仅可以在包含目标容器的管理节点中创建新的容器,简化了升级过程。
在一种可能的实现方式中,所述处理器具体用于:
在新的容器创建完成后,将所述服务器中记录的目标容器的端口对应的容器标识,更新为新的容器的容器标识,以根据新的容器的容器标识,将携带有目标容器的端口的业务请求发送给新的容器,并在预设时长后控制所述目标容器停止运行。
上述服务器,由于业务请求分发给容器需要服务器中记录的容器的端口和端口对应的容器标识,所以,在新的容器创建完成后,将服务器进行更新,即更新端口对应的容器标识,这样新的容器即可接收到业务请求,同时可能目标容器正在处理创建新的容器的过程中接收到的业务请求,为了避免该业务请求能够被处理,在经过预设时长后,控制需要升级的容器停止运行,从而使得停止需要升级的容器处理业务的过程更加平滑,减低容器负责的业务中断的情况。
第二方面,本发明实施例提供的一种容器升级方法,包括:
在接收到针对目标容器的升级指令之后,判断所述目标容器是否正在处理业务;
若所述目标容器正在处理业务,且接收到的业务请求中携带的端口为所述目标容器的端口,则根据所述服务器中记录的所述目标容器的端口和所述目标容器的端口对应的容器标识,将所述业务请求发送给所述目标容器,以使所述目标容器继续处理业务;
并在确定出所述目标容器的升级内容为对容器模板进行升级之后,根据所述目标容器的升级内容中包含的容器模板,在包含所述目标容器的管理节点中创建新的容器;其中,所述容器模板中新的容器和目标容器的业务数据磁盘存储目录相同,所述容器模板中记录的新的容器的端口与所述目标容器的端口相同,新的容器和所述目标容器的容器标识不同。
在一种可能的实现方式中,通过以下方式确定目标容器的升级内容为对容器模板进行升级:
检测所述目标容器的升级内容的注解信息是否为容器模板的标识;
如果是,则确定所述目标容器的升级内容为对容器模板进行升级。
在一种可能的实现方式中,通过以下方式获取注解信息:
根据所述目标容器的每种升级内容对应的标识,生成选择界面进行显示;
将用户在所述选择界面选择的容器模板的标识置于所述注解信息中。
在一种可能的实现方式中,在确定目标容器的升级内容为对容器模板进行升级后,所述方法还包括:
暂停部署进程,其中,所述部署进程用于删除包含所述目标容器的管理节点,以及执行创建新的管理节点。
在一种可能的实现方式中,所述方法还包括:
在新的容器创建完成后,将所述服务器中记录的目标容器的端口对应的容器标识,更新为新的容器的容器标识,以根据新的容器的容器标识,将携带有目标容器的端口的业务请求发送给新的容器,并在预设时长后控制所述目标容器停止运行。
第三方面,本申请还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理单元执行时实现第二方面所述的容器升级方法的步骤。
另外,第二方面至第四方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理,并不构成对本发明的不当限定。
图1是本发明实施例提供的一种Kubernetes中一个node的示意图;
图2是本发明实施例提供的一种容器升级方法的流程图;
图3是本发明实施例提供的一种容器升级过程中pod1中的变化情况;
图4是本发明实施例提供的一种用户交互界面的示意图;
图5是本发明实施例提供的一种容器升级的完整方法的流程图;
图6是本发明实施例提供的一种服务器的结构图。
具体实施方式
为了使本领域普通人员更好地理解本发明的技术方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本发明的说明书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
Kubernetes是一种可移植的、可拓展的开源平台,用于管理容器化的工作负载和服务。在Kubernetes中多个容器会分布式的运行于云平台的多台服务器上,也可以称为宿主机,对于每台服务器可以称为node,当然node也可以为虚拟机。每个node中均可以设置多个pod,pod为容器的管理节点,pod可以管理多个容器,在pod中多个容器使用相同的IP地址、存储资源等,所以,pod这个管理节点管理自己下面的多个容器的协同工作。
在node中会为自身包含的每个pod提供IP地址,如果本地需要访问pod内容器的业务数据时,需要将pod内容器的目录挂载到本地的目录中,这样pod内的容器产生的业务数据,在本地也能够访问。如果远程需要访问pod内容器的业务数据时,需要将pod内容器的目录挂载到远程磁盘中,这样pod内的容器产生的业务数据,在远程磁盘也能够访问。
其中,容器模板中包括容器镜像、环境变量、启动命令、所需的CPU内存量等信息,容器镜像用来为容器提供隔离后执行环境的文件系统。所以,pod中的容器是根据容器模板直接创建的。
以下举一个示例,结合图1所示,node1中设置有pod1和pod2,pod1中管理容器1和容器2,也就是容器1和容器2使用相同的IP地址和存储资源等,pod2管理容器3、容器4和容器5,容器3、容器4和容器5使用相同的IP地址和存储资源等。
当pod1中的容器1或容器2,pod2中的容器3、或容器4、或容器5进行升级时,会将本次升级的升级内容存储到apiserver中,然后启动部署进程,启动部署进程后,会触发新版本ReplicaSet创建Pod,并删除旧版本Pod。
apiserver为提供了Kubernetes各类资源对象(pod等)的增删改查等HTTP Rest接口,是整个系统的数据总线和数据中心。
ReplicaSet维持一组Pod副本的运行,它的主要作用就是保证一定数量的Pod能够在集群中正常运行,它会持续监听这些Pod的运行状态,在Pod发生故障重启数量减少时重新运行新的Pod副本。
部署进程创建Pod,由部署进程来负责创建、更新、维护其所管理的所有Pods。RS负责控制副本数量,由部署进程来创建具体的Pod。
对于上述升级过程是需要重建建立pod,综上可以看出重新创建pod需要分配新的IP、重新进行挂载,如果两个pod的宿主机不是同一个时,还新的pod需要重新在apiserver中调度容器镜像等。
由于新的升级内容为容器模板时,由于容器模板可以重新创建新的容器,不需要依靠以前的容器的文件。对此为了简化容器模板升级的步骤,本发明实施例提供了一种容器升级方法,结合图2所示,所述方法包括:
S200:在接收到针对目标容器的升级指令之后,判断目标容器是否正在处理业务;若是,则执行S201,否则执行S202;
S201:若接收到的业务请求中携带的端口为目标容器的端口,则根据服务器中记录的目标容器的端口和目标容器的端口对应的容器标识,将业务请求发送给目标容器,以使目标容器继续处理业务;
端口对应的容器标识是容器的唯一标识,例如,端口一般为四个数,8080,那么端口对应的容器标识,为8080-IOP,其中,IOP为容器能够处理业务请求之前生成的唯一标识。
一般来说,容器如果要处理业务,需要Kubernetes的endpoints的功能,在node上的kube-proxy进程加入容器的endpoints,endpoints是可被访问的服务端点,记录每个pod的IP地址、pod内容器的端口、以及端口对应的容器标识。
所以,当接收到业务请求时,可以通过endpoints找到业务请求中携带的端口对应的容器标识,然后通过端口和端口对应的容器标识,找到业务请求需要转发的容器。当携带的端口为目标容器的端口,则业务请求可以根据服务器中记录的目标容器的端口和端口对应的容器标识,找到目标容器处理业务请求。
S202:在确定出目标容器的升级内容为对容器模板进行升级之后,根据目标容器的升级内容中包含的容器模板,在包含目标容器的管理节点中创建新的容器;
其中,容器模板中新的容器和目标容器的业务数据磁盘存储目录相同,容器模板中记录的新的容器的端口与目标容器的端口相同,新的容器和所述目标容器的容器标识不同。
同样的,升级内容包含的容器模板存储在apiserver中,当接收到升级指令后,从apiserver中调取升级内容包含的容器模板,在包含目标容器的管理节点中创建新的容器。
其中,目标容器为需要进行升级的容器,新的容器为目标容器升级后的容器。由于本发明采用的是在包含目标容器的管理节点中创建新的容器,那么创建完成的新的容器的管理节点还是原来的管理节点,由于管理节点没变,那么创建完成的新的容器可以使用的IP地址没有变化,则不需要重新分配新的IP地址给新的容器,本发明能够从而节省了网络分配的耗时。
其中,在本发明提出的容器模板中新的容器和目标容器的业务数据磁盘存储目录相同,这样服务器可以访问新的容器和目标容器存储在磁盘中的业务数据。
进一步讲,对于远程设备中挂载管理节点是希望服务器本端能够访问到容器内产生的业务数据,所以当新的容器和目标容器中的业务数据磁盘存储目录相同时,能够满足服务器本端能够访问到容器内产生的业务数据,同时无需修改目录,所以,对于远程设备中挂载无需修改。
同时,容器模板中记录的新的容器的端口与目标容器的端口相同,端口是业务的标识,即用户端向服务器发送业务请求中,会携带能够处理该业务的容器的端口,当端口不变时,则说明业务没有变化,这样无论容器是否升级,用户端可以任意发送业务请求,无需改变,所以,本发明实施例中,当新的容器替代目标容器进行工作时,由于新的容器和目标容器的端口相同,那么根据容器模板创建的新的容器能够处理业务。本发明实施例限定新的容器和目标容器的容器标识不同容器标识不同,由于服务器在查找容器处理业务请求时,需要用到容器标识,这样在创建新的容器过程中,服务器记录的端口对应的容器标识依然为目标容器的容器标识,这样就可以通过容器标识找到目标容器进行业务处理,不会将业务请求误传给新的容器。
进一步的,为了能够让容器升级期间能够正常处理业务,在新的容器创建完成后,采用Kubernetes的健康检测功能,检测新的容器是否健康,如果新的容器通过Kubernetes的健康检测,则生成新的容器的容器标识,同时将服务器中记录的目标容器的端口对应的容器标识,更新为新的容器的容器标识,以根据新的容器的容器标识,将携带有目标容器的端口的业务请求发送给新的容器,并在预设时长后控制所述目标容器停止运行。从而使得业务处理过程实现不间断。
举一个示例,端口为8080时,endpoints中记录8080和目标容器对应的容器标识,IOP,当新的容器创建完成后,生成新的容器的容器标识为IOW,则endpoints中更新为8080和IOW对应。
详细来说,业务请求的分发是通过端口和端口对应的标识进行的,所以,在新的容器创建完成后,意味着新的容器已经可以处理业务了,那么将服务器中记录的目标容器的端口对应的容器标识,更新为新的容器的容器标识,这样如果有新的业务请求,就可以将新的业务请求中的端口,在服务器中找到端口对应的新的容器的容器标识,从而将业务请求发给新的容器,新的容器处理业务请求。
同时pod中的kubelet根据目标容器的镜像版本、以及resource Version等版本信息找到目标容器,让目标容器继续处理新的容器创建过程中发送的业务请求,待该业务请求处理完成后,停止目标容器运行,这一过程,可以通过设置预设时长实现。预设时长的取值可以根据不同的容器处理业务所需要的时间进行预先设定的,例如,处理业务时间比较快的容器,可以设置预设时长为20毫秒,处理业务时间比较慢的容器,可以设置预设时长为1秒。
对于上述的方法,以图1中的设备为例,结合图3所示,pod1中的容器1需要进行升级,且升级内容为对容器模板进行升级,那么可以根据容器1的升级内容中的容器模板,在pod1中创建新的容器1’,在创建完成后,再停止容器1处理业务,删除容器1,这时pod1中运行容器2和容器1’。
其中,在容器模板中中指示创建的新的容器1’的目录与容器1中的目录相同,且容器模板中记录的新的容器1’的端口与容器1的端口相同。
这时由于升级过程中,node没有发生改变,pod的位置以及资源都没有发生改变,pod中的其他容器也在运行状态中,降低对业务的影响,同时,需要重新创建pod中其他没有升级的容器,节省了拉取其他容器镜像时间,提高了升级的效率。
本发明实施例提供一种确定目标容器的升级内容为对容器模板进行升级的方式:检测目标容器的升级内容的注解信息是否为容器模板的标识;如果是,则确定目标容器的升级内容为对容器模板进行升级。如果否,则确定目标容器的升级内容不为对容器模板进行升级。
如果本来的升级方案是对容器模板进行升级,可以自动对本次升级内容中添加注解信息,注解信息为容器模板的标识,那么可以直接在接收到升级指令后,通过本发明的方式对容器模板进行升级,如果本来的升级方案不仅仅是对容器模板进行升级,还包括对其他部分的升级,那么本发明实施例可以提供给用户接口,让用户选择升级的部分,如果用户选择的升级的部分仅为容器模板,那么可以通过本发明的方式对容器进行升级。
具体来说,根据目标容器的每种升级内容对应的标识,生成选择界面进行显示;将用户在选择界面选择的容器模板的标识置于注解信息中。
具体来说,可以将整个升级方案划分出多种升级内容,并根据每种升级内容对应的标识,生成选择界面进行显示,然后用户可以在这个选择界面选择升级内容对应的标识,如果用户选择的标识为容器模板标识,则将容器模板标识至于目标容器的升级内容的注解信息中,这样可以通过查看注解信息中是否包含容器模板标识来确定升级内容为对容器模板进行升级。
其中,修改容器镜像,添加或删除环境变量等,均可以制作一个新的容器模板,对容器模板进行更新。
示例性的,升级指令可以通过用户触发升级按钮来实现,在实际应用过程中,升级按钮和用户选择升级内容对应的标识可在相同的页面上,本次升级的方案中可以对容器镜像进行升级、对pod进行升级,容器模板的标识为标识1、pod的标识为标识2,首先根据对应的标识,生成显示界面,结合图4所示,将每种升级内容对应的标识进行显示,并且显示每种标识表示的意思,标识1为容器模板,标识2为pod,用户可以在选择界面中选择标识,选择完容器模板对应的标识后,对应标识的区域可以显示灰色,即为选择的标识,标识1:容器模板为灰色,则说明用户选择容器模板,点击升级按钮,则服务器会将升级内容的注解信息中增加容器模板对应的标识。如果选择其他的标识,则采用部署进程,删除包含所述目标容器的管理节点,以及执行创建新的管理节点。所以,不需要进行注解信息。
升级按钮和用户选择升级内容对应的标识可在不同的页面上,首先可以显示选择界面,待用户选择完成后,再显示包含升级按钮的界面,让用户启动升级。
或者首先显示包含升级按钮的界面,让用户启动升级后,再显示选择界面,待用户选择升级内容,选择完成后,如果用户选择了容器模板对应的标识,那么将用户在选择界面选择的容器模板的标识置于注解信息中,服务器就可以在检测到容器模板的标识后,根据目标容器的升级内容中包含的容器模板,在包含目标容器的管理节点中创建新的容器;在新的容器创建完成后,停止目标容器处理业务。
由于现有技术中对容器升级过程中时通过部署进程执行,部署进程用于删除包含目标容器的管理节点,以及执行创建新的管理节点。在本发明中是在管理节点中直接创建新的容器,不涉及到删除包含目标容器的管理节点,以及创建新的管理节点这些步骤,所以,在确定对对容器模板升级时,可以暂停部署进程,防止部署进程删除包含所述目标容器的管理节点,以及执行创建新的管理节点。
详细来说,部署进程,例如,deployment,deployment的管理者监听到apiserver的变化后,如果apiserver的注解信息中包括容器模板的标识,即原地升级服务,则暂停deployment创建新的ReplicaSet,新的ReplicaSet删除包含目标容器的pod管理节点,ReplicaSet相关的管理者监听到apiserver的变化后,且apiserver的注解信息中包括容器模板的标识,则不触发pod管理节点的重建工作。
结合图5所示,本发明实施例提供了一种容器升级的完整方法,包括:
S500:根据目标容器的每种升级内容对应的标识,生成选择界面进行显示;
由于升级过程中,需要用户或升级平台将升级包记录到apiserver中,在升级包中可以记载该升级内容是对什么升级,即知道目标容器的每种升级内容,并将根据每种升级内容对应的标识,生成选择界面进行显示。
升级内容的种类,例如,是对容器模板升级、对容器镜像进行升级,然后生成控制界面。
S501:若用户在选择界面选择的容器模板的标识,则将容器模板的标识置于注解信息中。
将注解信息也同目标容器的升级内容一样存储到apiserver中。如果用户在选择界面中没有选择容器模板的标识,则不会将任何标识置于注解信息中。
S502:在接收到用户针对目标容器的升级指令后,检测目标容器的升级内容的注解信息是否为容器模板的标识;如果是,则执行S503;否则,执行S504:
在接收到用户针对目标容器的升级指令后,检测apiserver中的目标容器的升级内容的注解信息是否为容器模板的标识;
详细来讲,pod管理节点所在节点的kubelet组件监听apiserver的变化,发现升级服务中的注解信息是否为容器模板的标识,如果为容器模板的标识,则调用新的容器模板创建新的容器,待新的容器正常启动后,平滑停止旧版本容器,实现升级过程中业务无损。
S503:暂停部署进程,其中,部署进程用于删除包含目标容器的管理节点,以及执行创建新的管理节点;
S504:执行部署进程;
S505:根据目标容器的升级内容中包含的容器模板,在包含目标容器的管理节点中创建新的容器;
S506:在新的容器创建完成后,检测新的容器是否正常;如果是,则执行S507;否则执行S508;
S507:停止为目标容器分发新的业务请求,并在预设时长后控制目标容器停止运行。
S508:根据目标容器的升级内容中包含的容器模板,在包含目标容器的管理节点中重新创建新的容器。
基于上述的介绍,本发明实施例还提供一种服务器,结合图6所示,该服务器包括:处理器600和接收单元601;
所述接收单元601,用于接收针对目标容器的升级指令,以及接收所述业务请求;
所述处理器600,用于在接收到针对目标容器的升级指令之后,判断所述目标容器是否正在处理业务;
若所述目标容器正在处理业务,且所述业务请求中携带的端口为所述目标容器的端口,则根据所述服务器中记录的所述目标容器的端口和所述目标容器的端口对应的容器标识,将所述业务请求发送给所述目标容器,以使所述目标容器继续处理业务;
并在确定出所述目标容器的升级内容为对容器模板进行升级之后,根据所述目标容器的升级内容中包含的容器模板,在包含所述目标容器的管理节点中创建新的容器;其中,所述容器模板中新的容器和目标容器的业务数据磁盘存储目录相同,所述容器模板中记录的新的容器的端口与所述目标容器的端口相同,新的容器和所述目标容器的容器标识不同。
其中,所述处理器600是所述服务器的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行服务器的各种功能和处理数据,从而实现基于服务器的多种业务。
可选的,所述处理器600可包括一个或多个处理单元。可选的,所述处理器600可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到所述处理器中。
接收单元601可以用于接收用户输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。在本案中,接收单元用于接收针对目标容器的升级指令。
可选的,接收单元601可包括触控面板以及其他输入终端。
其中,所述触控面板,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在所述触控面板上或在所述触控面板附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,所述触控面板可以包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给所述处理器,并能接收所述处理器发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现所述触控面板。
可选的,所述其他输入终端可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
可选的,所述处理器600还用于:
检测所述目标容器的升级内容的注解信息是否为容器模板的标识;
如果是,则确定所述目标容器的升级内容为对容器模板进行升级。
可选的,所述处理器600具体用于:
根据所述目标容器的每种升级内容对应的标识,生成选择界面进行显示;
将用户在所述选择界面选择的容器模板的标识置于所述注解信息中。
可选的,所述处理器600还用于:
暂停部署进程,其中,所述部署进程用于删除包含所述目标容器的管理节点,以及执行创建新的管理节点。
可选的,所述处理器600具体用于:
在新的容器创建完成后,将所述服务器中记录的目标容器的端口对应的容器标识,更新为新的容器的容器标识,以根据新的容器的容器标识,将携带有目标容器的端口的业务请求发送给新的容器,并在预设时长后控制所述目标容器停止运行。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由服务器的处理器执行以完成上述容器升级方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在服务器上运行时,使得所述服务器执行实现本发明实施例上述任意一项容器升级方法。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (8)
1.一种服务器,其特征在于,包括:处理器和接收单元;
所述接收单元,用于接收针对目标容器的升级指令,以及接收业务请求;
所述处理器,用于在接收到针对目标容器的升级指令之后,判断所述目标容器是否正在处理业务;
若所述目标容器正在处理业务,且所述业务请求中携带的端口为所述目标容器的端口,则根据所述服务器中记录的所述目标容器的端口和所述目标容器的端口对应的容器标识,将所述业务请求发送给所述目标容器,以使所述目标容器继续处理业务;且根据所述目标容器的升级内容中包含的容器模板,在包含所述目标容器的管理节点中创建新的容器;其中,所述容器模板中新的容器和目标容器的业务数据磁盘存储目录相同,且所述容器模板中记录的新的容器的端口与所述目标容器的端口相同,以使所述新的容器和所述目标容器能接收同样的业务请求且可以访问同一业务的业务数据;新的容器和所述目标容器的容器标识不同,以实现基于所述新的容器和所述目标容器的容器标识,将创建所述新的容器的过程中接收到的业务请求分发给所述目标容器;
在所述新的容器创建完成后,将所述目标容器的标识更新为所述新的容器的标识,以及在预设时长后停止运行所述目标容器;其中,将所述目标容器的标识更新为所述新的容器的标识用于使新的业务请求发送给所述新的容器,在预设时长后停止运行所述目标容器用于使所述目标容器中已接收的业务请求处理完成。
2.根据权利要求1所述的服务器,其特征在于,所述处理器还用于:
检测所述目标容器的升级内容的注解信息是否为容器模板的标识;
如果是,则确定所述目标容器的升级内容为对容器模板进行升级。
3.根据权利要求2所述的服务器,其特征在于,所述处理器具体用于:
根据所述目标容器的每种升级内容对应的标识,生成选择界面进行显示;
将用户在所述选择界面选择的容器模板的标识置于所述注解信息中。
4.根据权利要求1所述的服务器,其特征在于,所述处理器还用于:
暂停部署进程,其中,所述部署进程用于删除包含所述目标容器的管理节点,以及执行创建新的管理节点。
5.一种容器升级方法,其特征在于,包括:
在接收到针对目标容器的升级指令之后,判断所述目标容器是否正在处理业务;
若所述目标容器正在处理业务,且接收到的业务请求中携带的端口为所述目标容器的端口,则根据服务器中记录的所述目标容器的端口和所述目标容器的端口对应的容器标识,将所述业务请求发送给所述目标容器,以使所述目标容器继续处理业务;且根据所述目标容器的升级内容中包含的容器模板,在包含所述目标容器的管理节点中创建新的容器;其中,所述容器模板中新的容器和目标容器的业务数据磁盘存储目录相同,且所述容器模板中记录的新的容器的端口与所述目标容器的端口相同,以使所述新的容器和所述目标容器能接收同样的业务请求且可以访问同一业务的业务数据;新的容器和所述目标容器的容器标识不同,以基于所述新的容器和所述目标容器的容器标识,将业务请求分发给所述目标容器;
在所述新的容器创建完成后,将所述目标容器的标识更新为所述新的容器的标识,以及在预设时长后停止运行所述目标容器;其中,将所述目标容器的标识更新为所述新的容器的标识用于使新的业务请求发送给所述新的容器,在预设时长后停止运行所述目标容器用于使所述目标容器中已接收的业务请求处理完成。
6.根据权利要求5所述的容器升级方法,其特征在于,通过以下方式确定目标容器的升级内容为对容器模板进行升级:
检测所述目标容器的升级内容的注解信息是否为容器模板的标识;
如果是,则确定所述目标容器的升级内容为对容器模板进行升级。
7.根据权利要求6所述的容器升级方法,其特征在于,通过以下方式获取注解信息:
根据所述目标容器的每种升级内容对应的标识,生成选择界面进行显示;
将用户在所述选择界面选择的容器模板的标识置于所述注解信息中。
8.根据权利要求5所述的容器升级方法,其特征在于,在确定目标容器的升级内容为对容器模板进行升级后,所述方法还包括:
暂停部署进程,其中,所述部署进程用于删除包含所述目标容器的管理节点,以及执行创建新的管理节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110623442.1A CN113590146B (zh) | 2021-06-04 | 2021-06-04 | 服务器及容器升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110623442.1A CN113590146B (zh) | 2021-06-04 | 2021-06-04 | 服务器及容器升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113590146A CN113590146A (zh) | 2021-11-02 |
CN113590146B true CN113590146B (zh) | 2023-10-27 |
Family
ID=78243607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110623442.1A Active CN113590146B (zh) | 2021-06-04 | 2021-06-04 | 服务器及容器升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590146B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986468A (zh) * | 2021-11-04 | 2022-01-28 | 马上消费金融股份有限公司 | 一种容器注入方法及装置 |
CN114756261B (zh) * | 2022-03-23 | 2023-04-18 | 广域铭岛数字科技有限公司 | 一种容器集群的升级方法、系统、电子设备及介质 |
CN114866790B (zh) * | 2022-03-25 | 2024-02-27 | 上海哔哩哔哩科技有限公司 | 直播流调度方法及装置 |
WO2024123350A1 (en) * | 2022-12-09 | 2024-06-13 | Robin Systems, Inc | Batch upgrade management in network computing environments |
CN117950690A (zh) * | 2023-12-20 | 2024-04-30 | 曙光云计算集团股份有限公司 | 容器组升级方法、装置、设备、存储介质和程序产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933137A (zh) * | 2015-12-21 | 2016-09-07 | 中国银联股份有限公司 | 一种资源管理方法、装置及系统 |
CN107515776A (zh) * | 2017-07-18 | 2017-12-26 | 深信服科技股份有限公司 | 业务不间断升级方法、待升级节点和可读存储介质 |
CN108683516A (zh) * | 2018-03-14 | 2018-10-19 | 聚好看科技股份有限公司 | 一种应用实例的升级方法、装置和系统 |
CN111258609A (zh) * | 2020-01-19 | 2020-06-09 | 北京百度网讯科技有限公司 | Kubernetes集群的升级方法、装置、电子设备和介质 |
CN111324361A (zh) * | 2018-12-14 | 2020-06-23 | 中国移动通信集团北京有限公司 | 一种应用升级方法及设备 |
CN111857975A (zh) * | 2020-07-30 | 2020-10-30 | 杭州安恒信息技术股份有限公司 | 一种服务更新方法、装置、设备及介质 |
CN111880816A (zh) * | 2020-07-24 | 2020-11-03 | 北京浪潮数据技术有限公司 | Kubernetes工作负载升级方法、装置及设备 |
CN111984280A (zh) * | 2019-05-22 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 容器兼容、升级方法、装置、设备及存储介质 |
CN112506617A (zh) * | 2020-12-16 | 2021-03-16 | 新浪网技术(中国)有限公司 | Kubernetes集群中边车容器的镜像更新方法及装置 |
CN112860282A (zh) * | 2021-03-31 | 2021-05-28 | 中国工商银行股份有限公司 | 集群插件的升级方法、装置和服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10635674B2 (en) * | 2012-09-28 | 2020-04-28 | Oracle International Corporation | Migrating a pluggable database between database server instances with minimal impact to performance |
US10063469B2 (en) * | 2015-12-16 | 2018-08-28 | Nicira, Inc. | Forwarding element implementation for containers |
-
2021
- 2021-06-04 CN CN202110623442.1A patent/CN113590146B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933137A (zh) * | 2015-12-21 | 2016-09-07 | 中国银联股份有限公司 | 一种资源管理方法、装置及系统 |
CN107515776A (zh) * | 2017-07-18 | 2017-12-26 | 深信服科技股份有限公司 | 业务不间断升级方法、待升级节点和可读存储介质 |
CN108683516A (zh) * | 2018-03-14 | 2018-10-19 | 聚好看科技股份有限公司 | 一种应用实例的升级方法、装置和系统 |
CN111324361A (zh) * | 2018-12-14 | 2020-06-23 | 中国移动通信集团北京有限公司 | 一种应用升级方法及设备 |
CN111984280A (zh) * | 2019-05-22 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 容器兼容、升级方法、装置、设备及存储介质 |
CN111258609A (zh) * | 2020-01-19 | 2020-06-09 | 北京百度网讯科技有限公司 | Kubernetes集群的升级方法、装置、电子设备和介质 |
CN111880816A (zh) * | 2020-07-24 | 2020-11-03 | 北京浪潮数据技术有限公司 | Kubernetes工作负载升级方法、装置及设备 |
CN111857975A (zh) * | 2020-07-30 | 2020-10-30 | 杭州安恒信息技术股份有限公司 | 一种服务更新方法、装置、设备及介质 |
CN112506617A (zh) * | 2020-12-16 | 2021-03-16 | 新浪网技术(中国)有限公司 | Kubernetes集群中边车容器的镜像更新方法及装置 |
CN112860282A (zh) * | 2021-03-31 | 2021-05-28 | 中国工商银行股份有限公司 | 集群插件的升级方法、装置和服务器 |
Non-Patent Citations (3)
Title |
---|
Adaptive scaling of Kubernetes pods;David Balla 等;《NOMS 2020 - 2020 IEEE/IFIP Network Operations and Management Symposium》;1-5 * |
一种基于负载均衡的Kubernetes调度改进算法;《成都信息工程大学学报》;第34卷(第3期);228-231 * |
基于微服务架构的云容器管理系统设计与实现;王阳;《中国优秀硕士学位论文全文数据库 信息科技辑》(第4期);I138-131 * |
Also Published As
Publication number | Publication date |
---|---|
CN113590146A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113590146B (zh) | 服务器及容器升级方法 | |
JP7566000B2 (ja) | マルチテナントapiゲートウェイにおいてテナント分離を提供するためのマイクロサービスコンテナの活用 | |
KR102430869B1 (ko) | 컨테이너화된 환경에서 클러스터의 라이브 마이그레이션 | |
CN101453367B (zh) | 软件部署方法和系统及软件部署服务器和用户服务器 | |
EP3598301B1 (en) | Cloud management platform, virtual machine management method, system thereof | |
CN112445579B (zh) | 零终端数据处理系统及其文件复制方法、装置 | |
WO2011156922A1 (en) | Method and system for workload distributing and processing across a network of replicated virtual machines | |
US10356212B2 (en) | Application delivery to a computing device using dynamic application volume creation and streaming | |
US9990214B2 (en) | Dynamic agent delivery | |
JP2006023797A (ja) | ボリューム絞込みシステム及び方法 | |
US20020188672A1 (en) | Server-based computing environment | |
CN112379963B (zh) | 远程应用窗口控制方法、装置及计算机设备 | |
JP6214372B2 (ja) | 管理装置、その方法及びプログラム | |
JP2016018339A (ja) | システム、及びシステムの制御方法 | |
CN110890987A (zh) | 自动创建集群的方法、装置、设备和系统 | |
CN111176577B (zh) | 分布式块存储服务命令处理方法、装置、设备及介质 | |
US20130238673A1 (en) | Information processing apparatus, image file creation method, and storage medium | |
US20130326501A1 (en) | Cloud system having flexible applications | |
JP6562744B2 (ja) | システム、及び制御方法 | |
US11190573B2 (en) | Techniques for improving implementation of a remote browser within a local browser | |
JPH05250239A (ja) | コンピュータネットワークシステム | |
CN115309457A (zh) | 应用实例的重启方法、装置、电子设备及可读存储介质 | |
CN114265655A (zh) | 云应用数据处理方法及装置、系统和存储介质 | |
CN111475176A (zh) | 一种数据读写的方法、相关装置、系统以及存储介质 | |
JP6568232B2 (ja) | 計算機システム、及び、装置の管理方法 |
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 |