CN112130923A - 容器的管理方法、装置、电子设备及计算机可读存储介质 - Google Patents
容器的管理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112130923A CN112130923A CN202010817613.XA CN202010817613A CN112130923A CN 112130923 A CN112130923 A CN 112130923A CN 202010817613 A CN202010817613 A CN 202010817613A CN 112130923 A CN112130923 A CN 112130923A
- Authority
- CN
- China
- Prior art keywords
- container
- sidecar
- application
- sidecar container
- pod
- 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.)
- Withdrawn
Links
- 238000007726 management method Methods 0.000 title abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 127
- 230000008569 process Effects 0.000 claims abstract description 101
- 230000006870 function Effects 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 15
- 230000000903 blocking effect Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004886 process control Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000000926 separation method Methods 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Container, Conveyance, Adherence, Positioning, Of Wafer (AREA)
Abstract
本申请实施例提供了一种容器的管理方法、装置、电子设备及计算机可读存储介质。该方法包括:在启动应用容器时,检测Sidecar容器是否已运行;若Sidecar容器已运行,则运行应用容器;若Sidecar容器未运行,则阻塞应用容器的运行,直至检测到Sidecar容器已运行。在关闭Sidecar容器时,检测Pod中是否存在除Sidecar容器的进程之外的进程;若不存在,则关闭Sidecar容器;若存在,则阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。基于本方案,能够控制控制Sidecar容器与应用容器的启动或终止顺序,保证Sidecar容器在应用容器运行之前被启动,并且在应用容器关闭后被关闭,从而保证应用容器的正常运行。
Description
技术领域
本申请涉及计算机应用技术领域,具体而言,本申请涉及一种容器的管理方法、装置、电子设备及计算机可读存储介质。
背景技术
在容器技术中,通过将应用的非业务功能解耦到Sidecar容器,可以实现将应用业务功能与非业务功能的分离,避免重复建设,方便运维人员的同时,也大大减轻了开发人员的负担。因此,在Service Mesh架构体系中,越来越多的应用开始实施这种模式。
Sidecar容器负责将所有传入和传出流量代理到应用容器,在Sidecar容器启动并运行之前,应用容器无法发送或接收流量。如果应用容器先启动,应用容器无法发送或接收流量,则会发生报错。如果Sidecar容器在应用容器之前终止,应用容器在正常的关闭过程中仍在进行的进程,如关闭长期连接,回滚事务或将状态保存到外部存储等,则会由于Sidecar容器的关闭,导致上述这些进程无法正常进行。
因此,需要保证Sidecar容器在应用容器运行之前被启动,并且在应用容器关闭后被关闭,才能够保证应用容器的正常运行。但是,目前Pod中无法控制Sidecar容器与应用容器的启动或终止顺序,也就无法保证应用容器的正常运行。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种容器的管理方法,该方法包括:
在启动应用容器时,检测Sidecar容器是否已运行;
若Sidecar容器已运行,则运行应用容器;
若Sidecar容器未运行,则阻塞应用容器的运行,直至检测到Sidecar容器已运行。
可选地,检测Sidecar容器是否已运行,包括:
通过与应用容器启动时发起的PostStart事件挂接的第一处理函数检测Sidecar容器是否已运行。
第二方面,本申请实施例提供了另一种容器的管理方法,该方法包括:
在关闭Sidecar容器时,检测Pod中是否存在除Sidecar容器的进程之外的进程;
若不存在,则关闭Sidecar容器;
若存在,则阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。
可选地,检测Pod中是否存在除Sidecar容器的进程之外的进程,包括:
通过与PreStop事件挂接的第二处理函数检测Pod中是否存在除Sidecar容器的进程之外的进程。
第三方面,本申请实施例提供了一种容器的管理装置,该装置包括:
运行检测模块,用于在启动应用容器时,检测Sidecar容器是否已运行;
运行控制模块,用于在Sidecar容器已运行时,运行应用容器;在Sidecar容器未运行时,阻塞应用容器的运行,直至检测到Sidecar容器已运行。
可选地,运行检测模块在检测Sidecar容器是否已运行时,具体用于:
通过与应用容器启动时发起的PostStart事件挂接的第一处理函数检测Sidecar容器是否已运行。
第四方面,本申请实施例提供了另一种容器的管理装置,该装置包括:
进程检测模块,用于在关闭Sidecar容器时,检测Pod中是否存在除Sidecar容器的进程之外的进程;
容器关闭模块,用于在Pod中不存在除Sidecar容器的进程之外的进程时,关闭Sidecar容器;在Pod中存在除Sidecar容器的进程之外的进程时,阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。
可选地,进程检测模块在检测Pod中是否存在除Sidecar容器的进程之外的进程时,具体用于:
通过与PreStop事件挂接的第二处理函数检测Pod中是否存在除Sidecar容器的进程之外的进程。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式或第二方面的任一实施方式中所示的容器的管理方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式或第二方面的任一实施方式中所示的容器的管理方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的方案,通过在启动应用容器时,检测Sidecar容器是否已运行,并在Sidecar容器已运行时,运行应用容器,在Sidecar容器未运行时,阻塞应用容器的运行,直至检测到Sidecar容器已运行;并通过在关闭Sidecar容器时,检测检测Pod中是否存在除Sidecar容器的进程之外的进程,若不存在,则关闭Sidecar容器;若存在,则阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。基于本方案,能够控制控制Sidecar容器与应用容器的启动或终止顺序,保证Sidecar容器在应用容器运行之前被启动,并且在应用容器关闭后被关闭,从而保证应用容器的正常运行。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种容器的管理方法的流程示意图;
图2为本申请实施例提供的另一种容器的管理方法的流程示意图;
图3为本申请实施例提供的一种容器的管理装置的结构示意图;
图4为本申请实施例提供的另一种容器的管理装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种容器的管理方法的流程示意图,如图1所示,该方法主要可以包括:
步骤S110:在启动应用容器时,检测Sidecar容器是否已运行;
步骤S120:若Sidecar容器已运行,则运行应用容器;
步骤S130:若Sidecar容器未运行,则阻塞应用容器的运行,直至检测到Sidecar容器已运行。
在Service Mesh框架中,Sidecar容器是自动注入到Pod中,它是通过kubernetes中kube-apiserver准入控制来实现的,具体过程为:
(1)Kubernetes通过Admission Controller自动注入Sidecar。
(2)应用yaml配置部署应用,此时Kubernetes API server接收到的服务创建配置文件中已经包含了Init容器以及Sidecar容器。
(3)在Sidecar容器和应用容器启动之前,首先运行Init容器,Init容器用于设置iptables等,将进入Pod的流量劫持到Sidecar。
(4)启动Pod中的Sidecar容器和应用容器。
上述过程中,无法对Sidecar容器和应用容器的启动顺序进行控制。
本申请实施例中,可以在应用容器启动时,检测Sidecar容器是否已运行,通过Sidecar容器是否已运行来控制是否运行应用容器。
如果确定Sidecar容器已运行,则可以将应用容器的状态转换为运行状态。如果Sidecar容器未运行,则阻塞应用容器的运行,直至检测到Sidecar容器已运行,才将应用容器的状态转换为运行状态。通过该方式,能够保证Sidecar容器在应用容器运行之前被启动。
本申请实施例提供的方法,通过在启动应用容器时,检测Sidecar容器是否已运行,并在Sidecar容器已运行时,运行应用容器,在Sidecar容器未运行时,阻塞应用容器的运行,直至检测到Sidecar容器已运行。基于本方案,能够控制Sidecar容器与应用容器的启动顺序,保证Sidecar容器在应用容器运行之前被启动,从而能够保证应用容器的正常运行。
本申请实施例的一种可选方式中,检测Sidecar容器是否已运行,包括:
通过与应用容器启动时发起的PostStart事件挂接的第一处理函数检测Sidecar容器是否已运行。
本申请实施例中,PostStart事件可以在应用容器启动时被发起,第一处理函数被编写为脚本形式,循环的检测Sidecar容器的健康检查接口,并根据返回值的情况来确定Sidecar容器的运行状态。作为一个示例,第一处理函数可以基于exec命令实现。
作为一个示例,本申请中,Pod中各容器的启动具体如下:
当Pod启动时,首先运行Init容器,Init容器将进入Pod的流量劫持到Sidecar,然后销毁Init容器并启动Sidecar容器和应用容器。如果Sidecar容器在应用容器之前启动,应用容器可以正常进入运行状态,如果Sidecar容器在应用容器之后启动,应用容器会一直阻塞等待Sidecar容器启动后,才会进入运行状态。
图2示出了本申请实施例提供的另一种容器的管理方法的流程示意图,如图2所示,该方法主要可以包括:
步骤S210:在关闭Sidecar容器时,检测Pod中是否存在除Sidecar容器的进程之外的进程;
步骤S220:若不存在,则关闭Sidecar容器;
步骤S230:若存在,则阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。
本申请实施中,可以在关闭Sidecar容器之前,检测Pod中是否存在除Sidecar容器的进程之外的进程。如果不存在则可以关闭Sidecar容器;如果存在,则可以阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程,能够保证Sidecar容器在应用容器关闭后才关闭。
本申请实施例提供的方法,通过在关闭Sidecar容器时,检测检测Pod中是否存在除Sidecar容器的进程之外的进程,若不存在,则关闭Sidecar容器;若存在,则阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。基于本方案,能够控制Sidecar容器与应用容器的终止顺序,能够保证Sidecar容器在应用容器关闭之后才关闭,从而能够保证应用容器的正常运行。
本申请实施例的一种可选方式中,检测Pod中是否存在除Sidecar容器的进程之外的进程,包括:
通过与PreStop事件挂接的第二处理函数检测Pod中是否存在除Sidecar容器的进程之外的进程。
本申请实施例中,PreStop事件是在应用容器关闭之前发起的,第二处理函数被编写为脚本形式,循环的检测Pod中是否存在除Sidecar容器的进程之外的进程,如不存在,则可以正常的将Sidecar容器关闭,而如果存在,则需要阻塞Sidecar容器的关闭,并等待Sidecar容器的进程之外的所有进程均终止后,再将Sidecar容器关闭。
本申请实施例中,可以将根据上述管理方法创建Kubernetes CRD对象,持续的监听Kubernetes资源对象的变化事件,进行全生命期的监控响应,针对复杂应用的自动化管理。
基于本申请实施提供的方案,能够控制控制Sidecar容器与应用容器的启动或终止顺序,保证Sidecar容器在应用容器运行之前被启动,并且在应用容器关闭后被关闭,从而保证应用容器的正常运行。
基于与图1中所示的方法相同的原理,图3示出了本申请实施例提供的一种容器的管理装置的结构示意图,如图3所示,该容器的管理装置30可以包括:
运行检测模块310,用于在启动应用容器时,检测Sidecar容器是否已运行;
运行控制模块320,用于在Sidecar容器已运行时,运行应用容器;在Sidecar容器未运行时,阻塞应用容器的运行,直至检测到Sidecar容器已运行。
本申请实施例提供的装置,通过在启动应用容器时,检测Sidecar容器是否已运行,并在Sidecar容器已运行时,运行应用容器,在Sidecar容器未运行时,阻塞应用容器的运行,直至检测到Sidecar容器已运行。基于本方案,能够控制Sidecar容器与应用容器的启动顺序,保证Sidecar容器在应用容器运行之前被启动,从而能够保证应用容器的正常运行。
可选地,运行检测模块在检测Sidecar容器是否已运行时,具体用于:
通过与应用容器启动时发起的PostStart事件挂接的第一处理函数检测Sidecar容器是否已运行。
可以理解的是,本实施例中的容器的管理装置的上述各模块具有实现图1中所示的实施例中的容器的管理方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述容器的管理装置的各模块的功能描述具体可以参见图1中所示实施例中的容器的管理方法的对应描述,在此不再赘述。
基于与图2中所示的方法相同的原理,图4示出了本申请实施例提供的一种容器的管理装置的结构示意图,如图4所示,该容器的管理装置40可以包括:
进程检测模块410,用于在关闭Sidecar容器时,检测Pod中是否存在除Sidecar容器的进程之外的进程;
容器关闭模块420,用于在Pod中不存在除Sidecar容器的进程之外的进程时,关闭Sidecar容器;在Pod中存在除Sidecar容器的进程之外的进程时,阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。
本申请实施例提供的装置,通过在关闭Sidecar容器时,检测检测Pod中是否存在除Sidecar容器的进程之外的进程,若不存在,则关闭Sidecar容器;若存在,则阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。基于本方案,能够控制Sidecar容器与应用容器的终止顺序,能够保证Sidecar容器在应用容器关闭之后才关闭,从而能够保证应用容器的正常运行。
可选地,进程检测模块在检测Pod中是否存在除Sidecar容器的进程之外的进程时,具体用于:
通过与PreStop事件挂接的第二处理函数检测Pod中是否存在除Sidecar容器的进程之外的进程。
可以理解的是,本实施例中的容器的管理装置的上述各模块具有实现图2中所示的实施例中的容器的管理方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述容器的管理装置的各模块的功能描述具体可以参见图2中所示实施例中的容器的管理方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的容器的管理方法。
作为一个示例,图5示出了本申请实施例所适用的一种电子设备的结构示意图,如图5所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的容器的管理方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,通过在启动应用容器时,检测Sidecar容器是否已运行,并在Sidecar容器已运行时,运行应用容器,在Sidecar容器未运行时,阻塞应用容器的运行,直至检测到Sidecar容器已运行;并通过在关闭Sidecar容器时,检测检测Pod中是否存在除Sidecar容器的进程之外的进程,若不存在,则关闭Sidecar容器;若存在,则阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。基于本方案,能够控制控制Sidecar容器与应用容器的启动或终止顺序,保证Sidecar容器在应用容器运行之前被启动,并且在应用容器关闭后被关闭,从而保证应用容器的正常运行。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的容器的管理方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,通过在启动应用容器时,检测Sidecar容器是否已运行,并在Sidecar容器已运行时,运行应用容器,在Sidecar容器未运行时,阻塞应用容器的运行,直至检测到Sidecar容器已运行;并通过在关闭Sidecar容器时,检测检测Pod中是否存在除Sidecar容器的进程之外的进程,若不存在,则关闭Sidecar容器;若存在,则阻塞Sidecar容器的关闭,直至检测到Pod中不存在除Sidecar容器的进程之外的进程。基于本方案,能够控制控制Sidecar容器与应用容器的启动或终止顺序,保证Sidecar容器在应用容器运行之前被启动,并且在应用容器关闭后被关闭,从而保证应用容器的正常运行。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种容器的管理方法,其特征在于,包括:
在启动应用容器时,检测Sidecar容器是否已运行;
若所述Sidecar容器已运行,则运行所述应用容器;
若所述Sidecar容器未运行,则阻塞所述应用容器的运行,直至检测到所述Sidecar容器已运行。
2.根据权利要求1所述的方法,其特征在于,所述检测Sidecar容器是否已运行,包括:
通过与所述应用容器启动时发起的PostStart事件挂接的第一处理函数检测Sidecar容器是否已运行。
3.一种容器的管理方法,其特征在于,包括:
在关闭Sidecar容器时,检测Pod中是否存在除所述Sidecar容器的进程之外的进程;
若不存在,则关闭所述Sidecar容器;
若存在,则阻塞所述Sidecar容器的关闭,直至检测到所述Pod中不存在除所述Sidecar容器的进程之外的进程。
4.根据权利要求3所述的方法,其特征在于,所述检测Pod中是否存在除所述Sidecar容器的进程之外的进程,包括:
通过与PreStop事件挂接的第二处理函数检测Pod中是否存在除所述Sidecar容器的进程之外的进程。
5.一种容器的管理装置,其特征在于,包括:
运行检测模块,用于在启动应用容器时,检测Sidecar容器是否已运行;
运行控制模块,用于在所述Sidecar容器已运行时,运行所述应用容器;在所述Sidecar容器未运行时,阻塞所述应用容器的运行,直至检测到所述Sidecar容器已运行。
6.根据权利要求5所述的装置,其特征在于,所述运行检测模块在检测Sidecar容器是否已运行时,具体用于:
通过与所述应用容器启动时发起的PostStart事件挂接的第一处理函数检测Sidecar容器是否已运行。
7.一种容器的管理装置,其特征在于,包括:
进程检测模块,用于在关闭Sidecar容器时,检测Pod中是否存在除所述Sidecar容器的进程之外的进程;
容器关闭模块,用于在所述Pod中不存在除所述Sidecar容器的进程之外的进程时,关闭所述Sidecar容器;在所述Pod中存在除所述Sidecar容器的进程之外的进程时,阻塞所述Sidecar容器的关闭,直至检测到所述Pod中不存在除所述Sidecar容器的进程之外的进程。
8.根据权利要求7所述的装置,其特征在于,所述进程检测模块在检测Pod中是否存在除所述Sidecar容器的进程之外的进程时,具体用于:
通过与PreStop事件挂接的第二处理函数检测Pod中是否存在除所述Sidecar容器的进程之外的进程。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010817613.XA CN112130923A (zh) | 2020-08-14 | 2020-08-14 | 容器的管理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010817613.XA CN112130923A (zh) | 2020-08-14 | 2020-08-14 | 容器的管理方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112130923A true CN112130923A (zh) | 2020-12-25 |
Family
ID=73851638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010817613.XA Withdrawn CN112130923A (zh) | 2020-08-14 | 2020-08-14 | 容器的管理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112130923A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596987A (zh) * | 2020-12-30 | 2021-04-02 | 中国工商银行股份有限公司 | 应用程序可用性的监控方法、装置、电子设备和介质 |
CN113918353A (zh) * | 2021-12-14 | 2022-01-11 | 杭州朗澈科技有限公司 | 工作负载扩容方法和系统 |
CN114065297A (zh) * | 2021-10-25 | 2022-02-18 | 深信服科技股份有限公司 | 一种证书处理方法、装置、电子设备及存储介质 |
CN114826906A (zh) * | 2022-04-13 | 2022-07-29 | 北京奇艺世纪科技有限公司 | 流量控制方法、装置、电子设备及存储介质 |
-
2020
- 2020-08-14 CN CN202010817613.XA patent/CN112130923A/zh not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596987A (zh) * | 2020-12-30 | 2021-04-02 | 中国工商银行股份有限公司 | 应用程序可用性的监控方法、装置、电子设备和介质 |
CN114065297A (zh) * | 2021-10-25 | 2022-02-18 | 深信服科技股份有限公司 | 一种证书处理方法、装置、电子设备及存储介质 |
CN113918353A (zh) * | 2021-12-14 | 2022-01-11 | 杭州朗澈科技有限公司 | 工作负载扩容方法和系统 |
CN113918353B (zh) * | 2021-12-14 | 2022-02-22 | 杭州朗澈科技有限公司 | 工作负载扩容方法和系统 |
CN114826906A (zh) * | 2022-04-13 | 2022-07-29 | 北京奇艺世纪科技有限公司 | 流量控制方法、装置、电子设备及存储介质 |
CN114826906B (zh) * | 2022-04-13 | 2023-09-22 | 北京奇艺世纪科技有限公司 | 流量控制方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112130923A (zh) | 容器的管理方法、装置、电子设备及计算机可读存储介质 | |
WO2022016847A1 (zh) | 一种适用于云平台的自动化测试方法及装置 | |
EP2624140A1 (en) | Method and system for detecting anomaly of network processor | |
CN114168222B (zh) | 一种启动耗时的获取方法、装置、终端设备和存储介质 | |
CN110704228B (zh) | 一种固态硬盘异常处理方法及系统 | |
CN106170013B (zh) | 一种基于Redis的Kafka消息唯一性方法 | |
US20240045787A1 (en) | Code inspection method under weak memory ordering architecture and corresponding device | |
CN111666088A (zh) | Pod的更替方法、装置、电子设备及计算机可读存储介质 | |
CN113190427B (zh) | 卡顿监控方法、装置、电子设备及存储介质 | |
CN103927244B (zh) | 一种基于动态代理实现的插件调度过程监控的方法 | |
CN105824709A (zh) | 一种临界区访问方法及装置 | |
CN113672306B (zh) | 服务器组件自检异常恢复方法、装置、系统及介质 | |
CN112835639B (zh) | 一种Hook实现方法、装置、设备、介质及产品 | |
CN103699485A (zh) | 应用程序调试方法和装置 | |
CN117055533A (zh) | 一种车载系统故障处理方法、装置、设备及介质 | |
CN112199642A (zh) | 一种安卓系统反调试的检测方法、移动终端及存储介质 | |
CN116302346A (zh) | 一种边车容器的故障处理方法及装置 | |
US9348667B2 (en) | Apparatus for managing application program and method therefor | |
CN109922014A (zh) | 一种交换机冷热启动判断方法及系统 | |
CN111309521B (zh) | Fpga重加载方法、fpga卡式设备和主机 | |
CN112506626A (zh) | 一种应用程序的启动方法、计算机设备及存储介质 | |
CN105607991A (zh) | 一种基于异步线程的测试方法和装置 | |
CN114942797B (zh) | 基于边车模式的系统配置方法、装置、设备及存储介质 | |
CN113656106B (zh) | 插件加载方法、装置、电子设备及计算机可读存储介质 | |
CN113687929B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201225 |