CN113010342A - 运维诊断的方法、装置、设备以及存储介质 - Google Patents

运维诊断的方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN113010342A
CN113010342A CN202110269255.8A CN202110269255A CN113010342A CN 113010342 A CN113010342 A CN 113010342A CN 202110269255 A CN202110269255 A CN 202110269255A CN 113010342 A CN113010342 A CN 113010342A
Authority
CN
China
Prior art keywords
diagnosed
container unit
container
namespace
identification information
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
Application number
CN202110269255.8A
Other languages
English (en)
Other versions
CN113010342B (zh
Inventor
林战波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110269255.8A priority Critical patent/CN113010342B/zh
Publication of CN113010342A publication Critical patent/CN113010342A/zh
Application granted granted Critical
Publication of CN113010342B publication Critical patent/CN113010342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开涉及运维诊断的方法、装置、设备以及存储介质,涉及通信技术、虚拟容器等领域。具体实现方案为:确定待诊断对象的标识信息;根据标识信息,获取待诊断对象的命名空间的对应信息;利用待诊断对象的命名空间的对应信息,生成第一容器单元;运行第一容器单元,将得到的结果作为对待诊断对象的诊断结果。本公开不需要对待诊断对象做任何侵入。并且,由于第一容器单元是利用待诊断对象的标识信息以及命名空间的对应信息生成的,因此可以支持对于待诊断对象的不同内容空间的对应内容进行调试,可以具有较高的泛化能力。

Description

运维诊断的方法、装置、设备以及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及通信技术、虚拟容器等领域。
背景技术
容器技术作为一种虚拟化技术,已经成为一种被大家广泛认可的服务器资源共享方式。容器技术可以在按需构建容器技术操作系统实例的过程当中为系统管理员提供极大的灵活性。
容器技术涉及混合和多云、边缘计算、服务网格、裸机容器和微虚拟机等复杂云原生基础设施等,针对差异环境服务稳定性诊断,自然就存在下面问题:面对错综复杂基础设施环境,如何诊断底层基础环境状态以及如调试虚拟容器内的运行参数等。
发明内容
本公开提供了一种用于运维诊断的方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种运维诊断的方法,该方法可以包括以下步骤:
确定待诊断对象的标识信息;
根据标识信息,获取待诊断对象的命名空间的对应信息;
利用待诊断对象的命名空间的对应信息,生成第一容器单元;
运行第一容器单元,将得到的结果作为对待诊断对象的诊断结果。
根据本公开的另一方面,提供了一种运维诊断的装置,该装置可以具体包括:
标识信息确定模块,用于确定待诊断对象的标识信息;
命名空间的对应信息获取模块,用于根据标识信息,获取待诊断对象的命名空间的对应信息;
第一容器单元生成模块,用于利用待诊断对象的命名空间的对应信息,生成第一容器单元;
诊断结果确定模块,用于运行第一容器单元,将得到的结果作为对待诊断对象的诊断结果。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例中的方法。
根据本公开的技术,不需要对待诊断对象做任何侵入。并且,由于第一容器单元是利用待诊断对象的标识信息以及命名空间的对应信息生成的,因此可以支持对于待诊断对象的不同内容空间的对应内容进行调试,可以具有较高的泛化能力。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开运维诊断的方法的流程图;
图2是根据本公开确定待诊断对象的标识信息的流程图;
图3是根据本公开获取待诊断容器的进程标识符以及第二容器单元的根文件系统的流程图;
图4是根据本公开确定待诊断对象的标识信息的流程图;
图5是根据本公开生成第一容器单元的流程图;
图6是根据本公开获取待诊断对象的命名空间的对应信息的流程图;
图7是根据本公开运维诊断的方法的流程图;
图8是根据本公开运维诊断的方法的流程图;
图9是根据本公开运维诊断的装置的示意图;
图10是用来实现本公开实施例的运维诊断的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,本公开涉及一种运维诊断的方法,该方法可以包括以下步骤:
S101:确定待诊断对象的标识信息;
S102:根据标识信息,获取待诊断对象的命名空间的对应信息;
S103:利用待诊断对象的命名空间的对应信息,生成第一容器单元;
S104:运行第一容器单元,将得到的结果作为对待诊断对象的诊断结果。
本申请的执行主体可以是诊断平台或诊断服务器等。本公开的诊断方案可以是基于Kubernetes实现的。Kubernetes是一个开源的,用于管理云平台中多个节点(宿主机)上的容器化的应用。
容器单元(Pod)是Kubernetes中最基本的对象。容器单元是容器(Container)的集合,同一容器单元中的容器共享存储和网络,并且具备运行容器的规范。
容器单元部署于节点(Node)中,节点可以作为容器单元的宿主机。
待诊断对象可以包括宿主机和/或容器单元中的至少一个容器。在待诊断对象包括宿主机的情况下,待诊断对象的标识信息可以包括宿主机的进程标识符(PID,ProcessIdentification)。在待诊断对象包括容器的情况下,待诊断对象的标识信息可以包括被诊断容器的进程标识符,以及被诊断容器的根文件系统。
基于待诊断对象的标识信息,可以获取待诊断对象的命名空间(Namespace)的对应信息。其中,命名空间可以包括待诊断对象的挂载内容命名空间、进程间通信命名空间、宿主机名称命名空间、网络访问命名空间、进程树命名空间、用户命名空间等。上述待诊断对象的各命名空间对应的信息可以作为待诊断对象的特征信息。
利用待诊断对象的标识信息以及待诊断对象的命名空间的对应信息,可以创建容器单元。具体创建过程将在后文进行详述,创建的容器单元作为第一容器单元。
可以利用执行容器指令,通过运行第一容器单元,实现对第一容器单元进行诊断,从而可以获取第一容器单元的相关运行信息。示例性的,相关运行信息可以是内存使用率、磁盘使用率等。根据相关运行信息,可以实现对于待诊断对象的诊断。
另外,还可以利用执行容器指令实现对于第一容器单元的管理。本公开实施例中,执行容器指令可以是“kubectl exec”指令。利用该指令可以直接操作第一容器单元,并对第一容器单元中的容器的镜像进行管理。
通过本申请的上述方案,不需要对待诊断对象做任何侵入。并且,由于第一容器单元是利用待诊断对象的标识信息以及命名空间的对应信息生成的,因此可以支持对于待诊断对象的不同内容空间的对应内容进行调试,可以具有较高的泛化能力。
结合图2所示,在一种实施方式中,在待诊断对象包括容器的情况下,步骤S101中涉及的确定待诊断对象的标识信息,可以包括以下具体步骤:
S201:获取待诊断容器所在的第二容器单元的节点名称;
S202:利用节点名称,获取待诊断容器的进程标识符以及第二容器单元的根文件系统,将进程标识符和根文件系统作为待诊断对象的标识信息。
在一种可能的场景中,待诊断对象包括(待诊断)容器。在此情况下,可以首先获取待诊断容器所在容器单元的节点(宿主机),进而可以获取节点名称(Pod NodeName)。待诊断容器所在的容器单元可以称为第二容器单元。
另外,还可以获取待诊断容器的身份标识号(Container ID)。
利用第二容器单元的节点名称,可以获取到待诊断容器的进程标识符以及第二容器单元的根文件系统。获取到的上述内容作为待诊断对象的标识信息。
获取待诊断容器的进程标识符以及第二容器单元的根文件系统的方式可以采用后文详述的方式。另外,还可以采用人工查询的获取方式,或者其他相关技术已有的获取方式。
通过上述方案,在待诊断对象包括待诊断容器的情况下,可以利用待诊断容器所在的容器单元(第二容器单元)以及容器单元部署的节点最终获取到待诊断容器的标识信息。从而为后续过程中的生成第一容器单元提供支持。
结合图3所示,在一种实施方式中,步骤S202中涉及的利用节点名称,获取待诊断容器的进程标识符以及第二容器单元的根文件系统,可以包括以下具体步骤:
S301:利用节点名称,获取节点名称对应的节点的进程标识符和命名空间的对应信息;
S302:利用节点的进程标识符和命名空间的对应信息,生成临时容器单元;
S303:将临时容器单元的启动命令设置为对待诊断容器的状态解析命令;
S304:利用状态解析命令运行临时容器单元,得到待诊断容器的进程标识符以及第二容器单元的根文件系统。
在已知节点名称的情况下,可以对应获取到节点名称所对应的节点的进程标识符和命名空间的对应信息。
创建一个初始化的临时容器单元,初始化的临时容器单元可以命名为“ephemeral-node-shell pod”。根据节点名称所对应的节点的进程标识符和命名空间的对应信息,对初始化的临时容器单元进行配置。
对于初始化的临时容器单元的配置可以抽象表示为:nsenter--target XXX--Mount--UTS--IPC--NET--PID。
其中nsenter可以表示在指定进程的命令空间下运行指定程序的命令;targetXXX可以表示节点名称所对应的节点的进程标识符;Mount可以表示挂载命名空间的对应信息;UTS可以表示名称命名空间的对应信息;IPC可以表示进程间通信命名空间的对应信息;NET可以表示网络访问命令空间的对应信息;PID可以表示进程树命名空间的对应信息;其中,进程树命名空间的对应信息可以是持续运行,对应的指令可以是“PID sleepInfinity”。
以挂载命名空间为例,可以确定节点名称所对应的节点的挂载信息。挂载信息可以是节点挂载已有卷的相关信息,挂载环境变量的相关信息等。根据节点的挂载信息,可以对临时容器单元的挂载命名空间进行相应配置。
同理,还可以根据节点的进程间通信命名空间的对应信息、节点的名称命名空间的对应信息、节点的网络访问命令空间的对应信息、节点的进程树命名空间的对应信息、节点的用户命名空间的对应信息等,对临时容器单元的各命名空间进行配置。
临时容器单元的启动命令可以设置为对诊断容器的状态解析命令。
在所有符合开放容器计划(OCI,Open Container Initiative)标准的情况下,运行时会创建“state.json”文件。在该文件中至少包括版本信息、身份标识号、进程标识符以及存放根文件系统的目录等。
因此,根据状态解析命令,利用临时容器单元对待诊断容器的状态进行解析,即可以获取到待诊断容器的进程标识符以及第二容器单元的根文件系统。
对于(第二容器单元的)根文件系统的获取,是以获取到根文件系统的路径形式实现的。即,通过对诊断容器的状态进行解析,可获取到根文件系统的路径。
通过上述方式,创建临时容器,利用待诊断容器所在的容器单元的相关信息配置临时容器。通过将临时容器的启动命令设置为解析待诊断容器,即可获取到待诊断容器的标识信息等。
结合图4所示,在一种实施方式中,在待诊断对象包括待诊断宿主机的情况下,步骤S101中涉及的确定待诊断对象的标识信息,可以具体包括以下步骤:
S401:获取待诊断宿主机的进程标识符;
S402:将待诊断宿主机的进程标识符作为待诊断对象的标识信息。
在待诊断对象包括待诊断宿主机的情况下,可以根据待诊断宿主机的身份标识号等信息直接获取待诊断宿主机的进程标识符。将待诊断宿主机的进程标识符作为待诊断对象的标识信息。
结合图5所示,在一种实施方式中,步骤S103中涉及的利用待诊断对象的标识信息以及各类名称空间对应的信息生成第一容器单元,包括:
S501:创建初始化的第一容器单元;
S502:利用待诊断对象的命名空间中的对应信息,配置初始化的第一容器单元的各类命名空间,以生成第一容器单元。
初始化的第一容器单元可以命名为node-shell pod或pod-shell pod等。
例如,在待诊断对象包括待诊断宿主机的情况下,初始化的第一容器单元可以命名为node-shell pod。在在待诊断对象包括待诊断容器的情况下,初始化的第一容器单元可以命名为pod-shell pod。
初始化的第一容器单元的各类命名空间可以包括挂载命名空间、宿主机名称命名空间、进程间通信命名空间、网络访问命令空间和进程树命名空间等。
对于初始化的第一容器单元各类命名空间的配置,可以依照待诊断对象的对应命名空间中的对应信息进行。
初始化的第一容器单元的配置可以抽象表示为:nsenter--target XXX--Mount--UTS--IPC--NET--PID。
在待诊断对象为前述的待诊断宿主机的情况下,nsenter可以表示进入待诊断宿主机XXX中(XXX可以对应待诊断宿主机的进程标识符)。Mount可以表示根据宿主机的挂载命名空间的对应信息进行配置;UTS可以表示根据宿主机的名称命名空间的对应信息进行配置;IPC可以表示根据宿主机的进程间通信命名空间的对应信息进行配置;NET可以表示根据宿主机的网络访问命令空间的对应信息进行配置;PID可以表示根据宿主机的进程树命名空间的对应信息进行配置。
在待诊断对象为前述的待诊断容器的情况下,nsenter可以表示进入待诊断容器所在的容器单元;target XXX可以对应待诊断容器的进程标识符;Mount可以表示根据待诊断容器所在的第二容器单元的挂载命名空间的对应信息进行配置;UTS可以表示根据待诊断容器所在的第二容器单元的名称命名空间的对应信息进行配置;IPC可以表示根据待诊断容器所在的第二容器单元的进程间通信命名空间的对应信息进行配置;NET可以表示根据待诊断容器所在的第二容器单元的网络访问命令空间的对应信息进行配置;PID可以表示根据待诊断容器所在的第二容器单元的进程树命名空间的对应信息进行配置。
另外,对于配置后的第一容器单元,还可以对其进行特权设置,从而将第一容器单元设置为高权限。例如,具体设置方式可以是:设置privileged为true,从而对第一容器单元开启特权。
需要说明的是,在待诊断对象为前述的待诊断容器的情况下,还可以包括对待测试容器进行配置的步骤。例如,按照功能执行划分,可以包括控制类节点和功能类节点。其中,控制类节点默认无法被创建出的容器单元诊断。因此,可以对控制类节点进行污点设置,使其可以被创建出的容器单元诊断。例如,具体设置方式可以是:设置operator为Exists。
通过上述方案,可以利用待诊断对象的标识信息以及命名空间的对应信息生成第一容器单元。从而可以在不需要对待诊断对象做任何侵入的情况下实现诊断。
在一种实施方式中,测试容器的命名空间包括:挂载命名空间、进程间通信命名空间、宿主机名称命名空间、网络访问命令空间、进程树命名空间、用户命名空间中的至少一种。
结合图6所示,在一种实施方式中,在待诊断对象的标识信息包括根文件系统的情况下,步骤S102中涉及的根据标识信息,获取待诊断对象的命名空间的对应信息,包括:
S601:将根文件系统挂载至初始化的第一容器单元的对应路径下;
S602:根据根文件系统,获取待诊断对象的命名空间的对应信息。
在被诊断对象包括被诊断容器的情况下,可以利用临时容器单元获取到待诊断容器所在容器单元的根文件系统。由于根文件系统是以路径形式获取到的,因此,可以将根文件系统的路径挂载至第一容器单元的对应路径下。对应路径可以是预定路径,或者系统默认路径等。
通过路径挂载,即可获取到待诊断容器所在容器单元的命名空间的对应信息。即,可以获取到待诊断对象的命名空间的对应信息。
另外,在待诊断对象包括待诊断宿主机的情况下,可以直接根据宿主机的标识信息获取到宿主机命名空间的对应信息。
结合图7所示,本公开涉及一种运维诊断的方法,待诊断对象包括待诊断宿主机,包括以下过程:
S701:确定待诊断对象的标识信息。
API Server可以提供Kubernetes各类资源对象的处理接口,是整个系统的数据总线和数据中心。处理接口可以包括增加处理、删除处理、修改处理和查看处理等。
诊断平台可以通过与API Server的通信,确定待诊断宿主机的标识信息。
S702:获取待诊断对象的命名空间的对应信息。
S703:生成第一容器单元。
第一容器的生成过程可以与前述实施方式相同,在此不再赘述。
S704:利用第一容器单元控制被诊断对象。
通过远程kubectl指令(对应图7中的kubectl),可以进入第一容器,从而获取到宿主机的系统(Root)用户权限。从而实现利用第一容器单元得到被诊断宿主机的镜像。
S705:诊断第一容器单元。
通过运行第一容器,即可利用执行容器指令,对生成的第一容器单元进行诊断,从而可以获取第一容器单元的相关运行信息。该相关运行信息即为被诊断宿主机的相关运行信息。
结合图8所示,本公开涉及一种运维诊断的方法,待诊断对象包括待诊断容器,包括以下过程:
S801:确定待诊断对象的标识信息。
诊断平台可以通过与API Server的通信,确定待诊断容器所在的第二容器单元的标识信息。
S802:获取待诊断容器所在的第二容器单元的节点名称。
根据节点名称,可以获取节点名称对应的节点的进程标识符和命名空间的对应信息。
S803:生成临时容器单元。
利用利用节点的进程标识符和命名空间的对应信息,可以生成临时容器单元。
S804:运行临时容器单元。
本步骤中,可以将临时容器单元的启动命令设置为对待诊断容器的状态解析命令。
S805:利用临时容器单元得到待诊断容器的进程标识符以及待诊断容器所在的第二容器单元的根文件系统。
S806:利用临时容器单元得到的信息定义第一容器单元。
S807:生成第一容器单元。
基于此,可以使得第一容器单元可以进入待诊断容器所在的第二容器单元,即获取到待诊断容器所在的第二容器单元的权项。从而可以利用第一容器单元对待诊断容器进行诊断。
S808:诊断第一容器单元。
通过运行第一容器,即可利用执行容器指令,对生成的第一容器单元进行诊断,从而可以获取第一容器单元的相关运行信息。该相关运行信息即为被诊断容器的相关运行信息。
如图9所示,本公开涉及一种运维诊断的装置,该装置可以具体包括:
标识信息确定模块901,用于确定待诊断对象的标识信息;
命名空间的对应信息获取模块902,用于根据标识信息,获取待诊断对象的命名空间的对应信息;
第一容器单元生成模块903,用于利用待诊断对象的命名空间的对应信息,生成第一容器单元;
诊断结果确定模块904,用于运行第一容器单元,将得到的结果作为对待诊断对象的诊断结果。
在一种实施方式中,在待诊断对象包括待诊断容器的情况下,标识信息确定模块901可以具体包括:
节点名称获取子模块,用于获取待诊断容器所在的第二容器单元的节点名称;
标识信息确定执行子模块,用于利用节点名称,获取待诊断容器的进程标识符以及第二容器单元的根文件系统,将进程标识符和根文件系统作为待诊断对象的标识信息。
在一种实施方式中,标识信息确定执行子模块,包括:
进程标识符和命名空间的对应信息获取单元,用于利用节点名称,获取节点名称对应的节点的进程标识符和命名空间的对应信息;
临时容器单元生成单元,用于利用节点的进程标识符和命名空间的对应信息,生成临时容器单元;
启动命令设置单元,用于将临时容器单元的启动命令设置为对待诊断容器的状态解析命令;
临时容器单元运行单元,用于利用状态解析命令运行临时容器单元,得到待诊断容器的进程标识符以及第二容器单元的根文件系统。
在一种实施方式中,在待诊断对象包括待诊断宿主机的情况下,标识信息确定模块901可以具体包括:
进程标识符获取子模块,用于获取待诊断宿主机的进程标识符;
标识信息确定执行子模块,用于将待诊断宿主机的进程标识符作为待诊断对象的标识信息。
在一种实施方式中,第一容器单元生成模块903可以具体包括:
初始化的第一容器单元创建子模块,用于创建初始化的第一容器单元;
第一容器单元配置子模块,用于利用待诊断对象的命名空间中的对应信息,配置初始化的第一容器单元的各类命名空间,以生成第一容器单元。
在一种实施方式中,命名空间包括:挂载命名空间、进程间通信命名空间、宿主机名称命名空间、网络访问命令空间、进程树命名空间、用户命名空间中的至少一种。
在一种实施方式中,在待诊断对象的标识信息包括根文件系统的情况下,命名空间的对应信息获取模块902可以具体包括:
根文件系统挂载子模块,用于将根文件系统挂载至初始化的第一容器单元的对应路径下;
命名空间的对应信息获取执行子模块,用于根据根文件系统,获取待诊断对象的命名空间的对应信息。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图10示出了可以用来实施本公开的实施例的电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或要求的本公开的实现。
如图10所示,电子设备1000包括计算单元1010,其可以根据存储在只读存储器(ROM)1020中的计算机程序或者从存储单元1080加载到随机访问存储器(RAM)1030中的计算机程序来执行各种适当的动作和处理。在RAM 1030中,还可存储设备1000操作所需的各种程序和数据。计算单元1010、ROM 1020以及RAM 1030通过总线1040彼此相连。输入输出(I/O)接口1050也连接至总线1040。
电子设备1000中的多个部件连接至I/O接口1050,包括:输入单元1060,例如键盘、鼠标等;输出单元1070,例如各种类型的显示器、扬声器等;存储单元1080,例如磁盘、光盘等;以及通信单元1090,例如网卡、调制解调器、无线通信收发机等。通信单元1090允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1010可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1010的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1010执行上文所描述的各个方法和处理,例如运维诊断的方法。例如,在一些实施例中,运维诊断的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1080。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1020和/或通信单元1090而被载入和/或安装到电子设备1000上。当计算机程序加载到RAM 1030并由计算单元1010执行时,可以执行上文描述的运维诊断的方法的一个或多个步骤。备选地,在其他实施例中,计算单元1010可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行运维诊断的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (17)

1.一种运维诊断的方法,包括:
确定待诊断对象的标识信息;
根据所述标识信息,获取所述待诊断对象的命名空间的对应信息;
利用所述待诊断对象的命名空间的对应信息,生成第一容器单元;
运行所述第一容器单元,将得到的结果作为对所述待诊断对象的诊断结果。
2.根据权利要求1所述的方法,其中,在所述待诊断对象包括待诊断容器的情况下,所述确定待诊断对象的标识信息,包括:
获取所述待诊断容器所在的第二容器单元的节点名称;
利用所述节点名称,获取所述待诊断容器的进程标识符以及所述第二容器单元的根文件系统,将所述进程标识符和所述根文件系统作为待诊断对象的标识信息。
3.根据权利要求2所述的方法,所述利用所述节点名称,获取所述待诊断容器的进程标识符以及所述第二容器单元的根文件系统,包括:
利用所述节点名称,获取所述节点名称对应的节点的进程标识符和命名空间的对应信息;
利用所述节点的进程标识符和命名空间的对应信息,生成临时容器单元;
将所述临时容器单元的启动命令设置为对所述待诊断容器的状态解析命令;
利用所述状态解析命令运行所述临时容器单元,得到所述待诊断容器的进程标识符以及所述第二容器单元的根文件系统。
4.根据权利要求1所述的方法,在所述待诊断对象包括待诊断宿主机的情况下,所述确定待诊断对象的标识信息,包括:
获取所述待诊断宿主机的进程标识符;
将所述待诊断宿主机的进程标识符作为待诊断对象的标识信息。
5.根据权利要求1至4任一所述的方法,所述利用所述待诊断对象的命名空间的对应信息,生成第一容器单元,包括:
创建初始化的第一容器单元;
利用所述待诊断对象的命名空间中的对应信息,配置所述初始化的第一容器单元的各类命名空间,以生成第一容器单元。
6.根据权利要求5所述的方法,所述命名空间包括:挂载命名空间、进程间通信命名空间、宿主机名称命名空间、网络访问命令空间、进程树命名空间、用户命名空间中的至少一种。
7.根据权利要求5所述的方法,在所述待诊断对象的标识信息包括根文件系统的情况下,所述根据所述标识信息,获取所述待诊断对象的命名空间的对应信息,包括:
将所述根文件系统挂载至所述初始化的第一容器单元的对应路径下;
根据所述根文件系统,获取所述待诊断对象的命名空间的对应信息。
8.一种运维诊断的装置,包括:
标识信息确定模块,用于确定待诊断对象的标识信息;
命名空间的对应信息获取模块,用于根据所述标识信息,获取所述待诊断对象的命名空间的对应信息;
第一容器单元生成模块,用于利用所述待诊断对象的命名空间的对应信息,生成第一容器单元;
诊断结果确定模块,用于运行所述第一容器单元,将得到的结果作为对所述待诊断对象的诊断结果。
9.根据权利要求8所述的装置,在所述待诊断对象包括待诊断容器的情况下,所述标识信息确定模块,包括:
节点名称获取子模块,用于获取所述待诊断容器所在的第二容器单元的节点名称;
标识信息确定执行子模块,用于利用所述节点名称,获取所述待诊断容器的进程标识符以及所述第二容器单元的根文件系统,将所述进程标识符和所述根文件系统作为待诊断对象的标识信息。
10.根据权利要求9所述的装置,所述标识信息确定执行子模块,包括:
进程标识符和命名空间的对应信息获取单元,用于利用所述节点名称,获取所述节点名称对应的节点的进程标识符和命名空间的对应信息;
临时容器单元生成单元,用于利用所述节点的进程标识符和命名空间的对应信息,生成临时容器单元;
启动命令设置单元,用于将所述临时容器单元的启动命令设置为对所述待诊断容器的状态解析命令;
临时容器单元运行单元,用于利用所述状态解析命令运行所述临时容器单元,得到所述待诊断容器的进程标识符以及所述第二容器单元的根文件系统。
11.根据权利要求8所述的装置,在所述待诊断对象包括待诊断宿主机的情况下,所述标识信息确定模块,包括:
进程标识符获取子模块,用于获取所述待诊断宿主机的进程标识符;
标识信息确定执行子模块,用于将所述待诊断宿主机的进程标识符作为待诊断对象的标识信息。
12.根据权利要求8至11任一所述的装置,所述第一容器单元生成模块,包括:
初始化的第一容器单元创建子模块,用于创建初始化的第一容器单元;
第一容器单元配置子模块,用于利用所述待诊断对象的命名空间中的对应信息,配置所述初始化的第一容器单元的各类命名空间,以生成第一容器单元。
13.根据权利要求12所述的装置,所述命名空间包括:挂载命名空间、进程间通信命名空间、宿主机名称命名空间、网络访问命令空间、进程树命名空间、用户命名空间中的至少一种。
14.根据权利要求12所述的装置,在所述待诊断对象的标识信息包括根文件系统的情况下,所述命名空间的对应信息获取模块,包括:
根文件系统挂载子模块,用于将所述根文件系统挂载至所述初始化的第一容器单元的对应路径下;
命名空间的对应信息获取执行子模块,用于根据所述根文件系统,获取所述待诊断对象的命名空间的对应信息。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据权利要求1至7中任一项所述的方法。
CN202110269255.8A 2021-03-12 2021-03-12 运维诊断的方法、装置、设备以及存储介质 Active CN113010342B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110269255.8A CN113010342B (zh) 2021-03-12 2021-03-12 运维诊断的方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110269255.8A CN113010342B (zh) 2021-03-12 2021-03-12 运维诊断的方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN113010342A true CN113010342A (zh) 2021-06-22
CN113010342B CN113010342B (zh) 2024-07-19

Family

ID=76405940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110269255.8A Active CN113010342B (zh) 2021-03-12 2021-03-12 运维诊断的方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN113010342B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722050A (zh) * 2021-11-02 2021-11-30 阿里云计算有限公司 应用诊断辅助方法、计算设备及机器可读存储介质
CN116932148A (zh) * 2023-09-19 2023-10-24 山东浪潮数据库技术有限公司 一种基于ai的问题诊断系统及方法
EP4343545A1 (de) * 2022-09-21 2024-03-27 Siemens Aktiengesellschaft Automatische zuweisung geänderter berechtigungen zu diagnosezwecken für bereits gestartete arbeits-containerinstanzen

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180011775A1 (en) * 2016-07-08 2018-01-11 International Business Machines Corporation Providing debug information on production containers using debug containers
US20180293394A1 (en) * 2017-04-11 2018-10-11 Nicira, Inc. Identifying container file events for providing container security
US20190332487A1 (en) * 2018-04-27 2019-10-31 EMC IP Holding Company LLC Generic metadata tags with namespace-specific semantics in a storage appliance
CN110704324A (zh) * 2019-09-30 2020-01-17 聚好看科技股份有限公司 应用调试方法、装置及存储介质
CN111124604A (zh) * 2019-12-05 2020-05-08 北京金山云网络技术有限公司 分配容器组pod IP地址的方法、装置、设备及存储介质
US20210042141A1 (en) * 2019-08-06 2021-02-11 Microsoft Technology Licensing, Llc Dynamic image composition for container deployment
CN112416737A (zh) * 2019-08-21 2021-02-26 广州虎牙科技有限公司 一种容器的测试方法、装置、设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180011775A1 (en) * 2016-07-08 2018-01-11 International Business Machines Corporation Providing debug information on production containers using debug containers
US20180293394A1 (en) * 2017-04-11 2018-10-11 Nicira, Inc. Identifying container file events for providing container security
US20190332487A1 (en) * 2018-04-27 2019-10-31 EMC IP Holding Company LLC Generic metadata tags with namespace-specific semantics in a storage appliance
US20210042141A1 (en) * 2019-08-06 2021-02-11 Microsoft Technology Licensing, Llc Dynamic image composition for container deployment
CN112416737A (zh) * 2019-08-21 2021-02-26 广州虎牙科技有限公司 一种容器的测试方法、装置、设备和存储介质
CN110704324A (zh) * 2019-09-30 2020-01-17 聚好看科技股份有限公司 应用调试方法、装置及存储介质
CN111124604A (zh) * 2019-12-05 2020-05-08 北京金山云网络技术有限公司 分配容器组pod IP地址的方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722050A (zh) * 2021-11-02 2021-11-30 阿里云计算有限公司 应用诊断辅助方法、计算设备及机器可读存储介质
EP4343545A1 (de) * 2022-09-21 2024-03-27 Siemens Aktiengesellschaft Automatische zuweisung geänderter berechtigungen zu diagnosezwecken für bereits gestartete arbeits-containerinstanzen
CN116932148A (zh) * 2023-09-19 2023-10-24 山东浪潮数据库技术有限公司 一种基于ai的问题诊断系统及方法
CN116932148B (zh) * 2023-09-19 2024-01-19 山东浪潮数据库技术有限公司 一种基于ai的问题诊断系统及方法

Also Published As

Publication number Publication date
CN113010342B (zh) 2024-07-19

Similar Documents

Publication Publication Date Title
US10635406B2 (en) Determining the identity of software in software containers
EP3974962A1 (en) Method, apparatus, electronic device, readable storage medium and program for deploying application
CN113010342B (zh) 运维诊断的方法、装置、设备以及存储介质
US10489005B2 (en) Usability analysis for user interface based systems
US9052963B2 (en) Cloud computing data center machine monitor and control
CN110704162A (zh) 物理机共享容器镜像的方法、装置、设备及存储介质
US11100233B2 (en) Optimizing operating system vulnerability analysis
US20210182358A1 (en) Root cause analysis using granger causality
CN114077367B (zh) Linux系统中实现安卓应用快捷方式的方法和装置
CN116257320B (zh) 一种基于dpu虚拟化配置管理方法、装置、设备及介质
CN111767089A (zh) 加载文件的方法、装置、设备以及存储介质
US20220214928A1 (en) Workload Configuration Extractor
CN114443076A (zh) 镜像构建方法、装置、设备及存储介质
US20180107723A1 (en) Content oriented analysis of dumps
US9514025B2 (en) Modeling memory use of applications
US11157243B2 (en) Client-side source code dependency resolution in language server protocol-enabled language server
US10353795B2 (en) Standardizing run-time and historical customer and test environments and workloads comparisons using specific sets of key platform data points
US11379468B1 (en) Control flow graph refining via execution data
CN115576565A (zh) 应用程序的部署方法、装置、电子设备及存储介质
CN113986476A (zh) 传感器设备虚拟化的方法、装置、电子设备和存储介质
CN113157281A (zh) 开发环境的创建方法、装置、电子设备和存储介质
CN113220576B (zh) 测试环境的管理方法、装置、设备以及存储介质
US11630705B1 (en) Dynamic generation of cloud platform application programming interface calls
WO2023193609A1 (en) Selective privileged container augmentation
US11500980B2 (en) Automated and auditable framework to control software component changes in an application build process

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