CN113656152B - 基于容器云环境的本地模拟方法、系统、介质和电子设备 - Google Patents

基于容器云环境的本地模拟方法、系统、介质和电子设备 Download PDF

Info

Publication number
CN113656152B
CN113656152B CN202110977093.3A CN202110977093A CN113656152B CN 113656152 B CN113656152 B CN 113656152B CN 202110977093 A CN202110977093 A CN 202110977093A CN 113656152 B CN113656152 B CN 113656152B
Authority
CN
China
Prior art keywords
application
container group
port
proxy
environment
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
Application number
CN202110977093.3A
Other languages
English (en)
Other versions
CN113656152A (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.)
Shanghai Daoke Network Technology Co ltd
Original Assignee
Shanghai Daoke Network 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 Shanghai Daoke Network Technology Co ltd filed Critical Shanghai Daoke Network Technology Co ltd
Priority to CN202110977093.3A priority Critical patent/CN113656152B/zh
Publication of CN113656152A publication Critical patent/CN113656152A/zh
Application granted granted Critical
Publication of CN113656152B publication Critical patent/CN113656152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种基于容器云环境的本地模拟方法、系统、计算机可读存储介质和电子设备。该方法包括:基于容器云环境的本地模拟方法包括:在容器云环境中设置本地环境的代理容器组;其中,代理容器组部署于工作节点;配置本地环境的端口与代理容器组的端口之间的映射关系,以将代理容器组的进程标准输入输出数据流与本地环境的进程标准输入输出数据流进行绑定,使得第一应用通过代理容器组的端口与第二应用进行数据交互;其中,第一应用部署于本地环境,第二应用部署于容器云环境,第二应用用于对第一应用进行调试。籍此,将本地环境作为容器云环境中代理容器组的模拟环境,实现在本地环境完成第一应用的开发和调试。

Description

基于容器云环境的本地模拟方法、系统、介质和电子设备
技术领域
本申请涉及云原生技术领域,特别涉及一种基于容器云环境的本地模拟方法、系统、计算机可读存储介质和电子设备。
背景技术
目前,对于部署在Kubernetes集群的云原生应用来说,代码的编写和修改由研发人员在本地完成,但需要在Kubernetes集群中运行,才能对应用的功能进行集成测试,进而发现和解决问题。在整个测试过程中,每完成一次测试,都需要在本地对代码进行修改,在Kubernetes集群中进行测试,整个调试流程需要在本地环境和Kubernetes集群不断重复修改、调试,才能定位和解决问题,极为繁琐,并且效率低下。
因而,如何在本地环境中模拟云环境,让部署在本地中的待测试应用能够和部署在云环境中的其他应用之间进行交互,以对待测试应用进行测试,提高应用调试效率已成为亟需解决的技术问题。
发明内容
本申请的目的在于提供一种基于容器云环境的本地模拟方法、系统、计算机可读存储介质和电子设备,以解决或缓解上述现有技术中存在的问题。
为了实现上述目的,本申请提供如下技术方案:
本申请提供了一种基于容器云环境的本地模拟方法,所述容器云环境中部署有工作节点;所述基于容器云环境的本地模拟方法包括:在所述容器云环境中设置本地环境的代理容器组;其中,所述代理容器组部署于所述工作节点;配置所述本地环境的端口与所述代理容器组的端口之间的映射关系,以将所述代理容器组的进程标准输入输出数据流与所述本地环境的进程标准输入输出数据流进行绑定,使得第一应用通过所述代理容器组的端口与第二应用进行数据交互;其中,所述第一应用部署于所述本地环境,所述第二应用部署于所述容器云环境,所述第二应用用于对所述第一应用进行调试。
优选的,所述第二应用通过所述代理容器组的进程标准输入输出数据流,与所述代理容器组进行数据交互,相应地,所述第一应用通过所述代理容器组的端口与所述第二应用进行数据交互,包括:响应于所述第一应用接收到与所述第二应用进行数据交互的交互指令,基于所述映射关系,所述第一应用通过所述本地环境的进程标准输入输出数据流,与所述第二应用进行数据交互;其中,所述交互指令包括所述代理容器组的名称。
优选的,所述本地环境的端口和所述代理容器组的端口均包括拨号端口,相应地,所述基于所述映射关系,所述第一应用通过所述本地环境的进程标准输入输出数据流,与所述第二应用进行数据交互,包括:根据所述交互指令,基于所述映射关系,所述第一应用通过所述本地环境的拨号端口,发出所述本地环境的进程标准输出数据流;所述代理容器组的拨号端口向所述第二应用发出所述代理容器组的进程标准输出数据流。
优选的,所述本地环境的端口和所述代理容器组的端口均包括监听端口,所述基于所述映射关系,所述第一应用通过所述本地环境的进程标准输入输出数据流,与所述第二应用进行数据交互,包括:根据所述交互指令,基于所述映射关系,所述代理容器组的监听端口接收所述第二应用的数据,并作为所述代理容器组的进程标准输入数据流;所述第一应用通过所述本地环境的监听端口接收所述代理容器组的进程标准输入数据流。
优选的,所述代理容器组的监听端口接收所述第二应用的数据,包括:对所述代理容器组的监听端口进行监听,响应于接收到所述第二应用的数据,建立所述代理容器组的监听端口与所述第二应用所在容器组的拨号端口之间的数据传输通道,以持续接收所述第二应用的数据流。
优选的,所述容器云环境为Kubernetes集群,所述Kubernetes集群包括kubectl组件、kube-apiserver组件和kubelet组件,相应地,所述将所述代理容器组的进程标准输入输出数据流与所述本地环境的进程标准输入输出数据流进行绑定,包括:基于所述kubectl 组件、所述kube-apiserver组件和所述kubelet组件,建立所述代理容器组的端口与所述本地环境的端口之间的数据传输通道,以绑定所述代理容器组和所述本地环境的进程标准输入输出数据流。
优选的,所述代理容器组的端口与所述本地环境的端口之间的数据传输通道允许所述第一应用与所述第二应用进行多次数据交互。
本申请实施例还提供一种基于容器云环境的本地模拟系统,所述容器云环境中部署有工作节点;所述基于容器云环境的本地模拟系统包括:代理容器组设置单元,配置为在所述容器云环境中设置本地环境的代理容器组;其中,所述代理容器组部署于所述工作节点;映射关系配置单元,配置为配置所述本地环境的端口与所述代理容器组的端口之间的映射关系,以将所述代理容器组的进程标准输入输出数据流与所述本地环境的进程标准输入输出数据流进行绑定,使得第一应用通过所述代理容器组的端口与第二应用进行数据交互;其中,所述第一应用部署于所述本地环境,所述第二应用部署于所述容器云环境,所述第二应用用于对所述第一应用进行调试。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序为如上任一实施例所述的基于容器云环境的本地模拟方法。
本申请实施例还提供一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如上任一实施例所述的基于容器云环境的本地模拟方法。
与最接近的现有技术相比,本申请实施例的技术方案具有如下有益效果:
本申请实施例提供的技术方案中,通过在容器云环境中部署的工作节点上设置本地环境的代理容器组,配置本地环境的端口与代理容器组之间的映射关系,将代理容器组的进程输入输出数据流与本地环境的进程标准输入输出数据流进行绑定,使得部署于本地环境的第一应用通过代理容器组的端口与部署容器云环境的第二应用进行数据交互。籍此,将本地环境作为容器云环境中代理容器组的模拟环境,在本地完成对第一应用的代码的编写或修改,并对代码进行编译后,编译生成的文件不需要再使用容器云环境的资源,而是使用本地环境的资源,将编译生成的文件直接在本地环境中运行,实现在本地环境完成第一应用的开发和调试。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。其中:
图1为根据本申请的一些实施例提供的一种基于容器云环境的本地模拟方法的流程示意图;
图2为根据本申请的一些实施例提供的一种基于容器云环境的本地模拟方法的原理示意图;
图3为根据本申请的一些实施例提供的一种进程标准输入数据流的传输示意图;
图4为图3所示进程标准输入数据流传输的等效示意图;
图5为根据本申请的一些实施例提供的一种进程标准输出数据流的传输示意图;
图6为图5所示进程标准输出数据流传输的等效示意图;
图7为根据本申请的一些实施例提供的一种基于容器云环境的本地模拟系统的结构示意图;
图8为根据本申请的一些实施例提供的电子设备的结构示意图;
图9为根据本申请的一些实施例提供的电子设备的硬件结构图。
具体实施方式
下面将参考附图并结合实施例来详细说明本申请。各个示例通过本申请的解释的方式提供而非限制本申请。实际上,本领域的技术人员将清楚,在不脱离本申请的范围或精神的情况下,可在本申请中进行修改和变型。例如,示为或描述为一个实施例的一部分的特征可用于另一个实施例,以产生又一个实施例。因此,所期望的是,本申请包含归入所附权利要求及其等同物的范围内的此类修改和变型。
名词解释
云原生应用:是指天生具备云计算基因,以云计算的思想构建并适用于云计算环境的应用,云原生应用具备这些特性:可以通过网络访问、远端部署执行、可扩展弹性伸缩、共享、按需使用自主服务、高可用、可远程监控计费审计、标准化交付与位置无关等。
Kubernetes:谷歌开源的容器集群管理系统,包括多个控制节点和工作节点,节点上部署有容器组,应用部署于容器组。当用户访问应用时,实际上访问的应用所对应的节点上的容器组。
容器组:是Kubernetes集群中创建和管理的、最小的可部署的计算单元,是一组(一个或多个)容器,容器之间共享资源和依赖、彼此通信。容器运行在操作系统上,可以有效地对单个操作系统的资源进行划分,容器运行应用进程时能够将应用进程与系统其他部分隔离开。
kubectl:是Kubernetes集群的命令行工具,Kubernetes用户和管理员可以通过kubectl输入命令,管理Kubernetes集群中的各种功能。
kubelet:kubernetes集群的工作节点上的一个工作组件,运行在每个节点上,kubelet是工作节点上的主要服务,从kube-apiserver组件接收新的或修改的容器组规范,并确保容器组及其容器在期望规范下运行。同时该组件作为工作节点的监控组件,向kube-apiserver汇报节点的运行状况。
进程标准输入输出数据流:在计算机系统中,软件应用以进程作为最小单位运行,进程的标准输入数据流以数据流的形式向进程源源不断地提供待处理数据,经进程处理后得到进程的标准输出数据流,作为进程运行的结果进行反馈。
基于前述对背景技术的说明,可以知道,对于部署在Kubernetes集群的云原生应用来说,代码的编写和修改工作在研发人员自己电脑中完成,即在本地环境中完成,但却需要在Kubernetes集群中运行,才能对应用的功能进行集成测试,进而发现和解决问题。具体来说,研发人员在完成代码的编写和修改工作后,需要在本地环境中对代码进行编译和打包,然后将打包生成的文件部署至Kubernetes集群中的节点上的容器组中运行,对运行中的应用的功能进行集成测试,对应用的运行状态进行观测和记录,对应用运行产生的日志进行记录,根据记录结果,分析应用在运行过程中出现问题的原因,进而推断引起该问题的代码。根据推断结果,在本地环境中对相应的代码进行修改,修改完成后再在本地环境中对代码进行再次编译和打包,并再次部署至Kubernetes集群中的节点上的容器组中运行,测试该问题是否得到解决,以及代码的修改是否引起了新的问题。重复多次,直至应用的功能符合使用需求。在整个测试过程中,每完成一次代码的修改,都需要重复一遍前述流程,整个调试流程极为繁琐,并且效率低下,给云原生应用的开发带来额外的负担。
为了解决上述问题,本申请提出了一种基于容器云环境的本地模拟方法、系统、计算机可读存储介质和电子设备,以解决或缓解上述问题。
示例性方法
如图1、图2所示,在该容器云环境中部署有工作节点,该基于容器云环境的本地模拟方法包括:
步骤S101、在容器云环境中设置本地环境的代理容器组;其中,代理容器组部署于工作节点;
在本申请实施例中,在工作节点中部署有kubelet组件,kubelet组件可以对工作节点中部署的每个容器组的运行状态进行监测,并将没有应用部署的容器组标记为空闲状态,研发人员可以选择空闲状态的容器组作为本地环境的代理容器组。此外,如果工作节点上没有空闲容器组,研发人员还可以在工作节点中新建容器组,并将新建容器组作为本地环境的代理容器组。
需要说明的是,本申请的主要发明构思是建立容器云环境中代理容器组的端口和本地环境的端口的映射关系,即使用本地环境的端口代替代理容器组的端口进行进程标准输入输出数据流的接收和发送。也就是说,代理容器组本身将不再接收容器云环境中的数据流,也不再对外发送数据流。因此,在设置代理容器组时应当选择没有应用部署的空闲容器组。
步骤S102、配置本地环境的端口与代理容器组的端口之间的映射关系,以将代理容器组的进程标准输入输出数据流与本地环境的进程标准输入输出数据流进行绑定,使得第一应用通过代理容器组的端口与第二应用进行数据交互;其中,第一应用部署于本地环境,第二应用部署于容器云环境,第二应用用于对第一应用进行调试。
通常情况下,研发人员在本地环境中完成应用的代码的编写和修改工作后,需要在本地环境对代码进行编译、打包,然后将打包生成的文件部署在容器云环境(比如Kubernetes集群)中运行,对运行中的应用的功能进行集成测试,对应用的运行状态进行观测和记录,对应用产生的日志进行记录,根据记录结果,分析应用在运行过程中出现问题的原因,找到引起该问题的代码,在本地环境对相应的代码进行修改;修改完成后再在本地环境对应用的代码进行再次编译、打包,并将打包生成的文件再次部署在容器云环境中运行,测试该问题是否得到解决,以及应用的代码是否引起新的问题。整个应用的测试过程需要在本地环境和容器云环境中来回修改、调试,重复多次,直至应用的功能符合使用要求。
在一些可选实施例中,第二应用通过代理容器组的进程标准输入输出数据流,与代理容器组进行数据交互;相应地,第一应用通过代理容器组的端口与第二应用进行数据交互,包括:响应于第一应用接收到与第二应用进行数据交互的命令,基于映射关系,第一应用通过本地环境的进程标准输入输出数据流,与第二应用进行数据交互;其中,命令包括代理容器组的名称。
在本申请实施例中,在容器云环境的中的第二应用访问本地环境的第一应用时,第二应用通过代理容器组的进程标准输入输出数据流与代理容器组进行交互,由于代理容器组的进程标准输入输出数据流与本地环境的进程标准输入输出数据流绑定,当第一应用接收到与第二应用进行数据交互的命令后,基于本地环境的端口与代理容器组的端口之间的映射关系,通过本地环境的进程标准输入输出数据流与第二应用进行数据交互。籍此,实现了第二应用对本地环境的第一应用的访问,即容器云环境中的其它容器组(出去代理容器组)对本地环境的第一应用的访问。
在一具体的例子中,本地环境的端口和代理容器组的端口均包括拨号端口,相应地,基于映射关系,第一应用通过本地环境的进程标准输入输出数据流,与第二应用进行数据交互包括:根据交互指令,基于映射关系,第一应用通过本地环境的拨号端口,发出本地环境的进程标准输出数据流;代理容器组的拨号端口向第二应用发出代理容器组的进程标准输出数据流。
在本申请实施例中,响应于交互指令指示第一应用向第二应用发送数据,基于本地环境端口与代理容器组的端口之间的映射关系,即本地环境的拨号端口与代理容器组的拨号端口之间建立了由kubectl 组件、kube-apiserver组件和kubelet组件构成的数据传输通道。第一应用通过本地环境的拨号端口发出本地环境的进程标准输出数据流,本地环境的进程标准输出数据流通过前述数据传输通道传输至代理容器组的拨号端口,从而转变为代理容器组的进程标准输出数据流,代理容器组的拨号端口向第二应用发出代理容器组的进程标准输出数据流,由此实现了本地环境中的第一应用向容器云环境中的第二应用发送数据。
在另一具体的例子中,本地环境的端口和代理容器组的端口均包括监听端口,基于映射关系,第一应用通过本地环境的进程标准输入输出数据流,与第二应用进行数据交互,包括:根据交互指令,基于映射关系,代理容器组的监听端口接收第二应用的数据,并作为代理容器组的进程标准输入数据流;第一应用通过本地环境的监听端口接收代理容器组的进程标准输入数据流。
在本申请实施例中,和上述第一应用向第二应用发送数据相类似,响应于交互指令指示第一应用接收第二应用发送的数据,基于本地环境端口与代理容器组的端口之间的映射关系,即本地环境的监听端口与代理容器组的监听端口之间建立了由kubelet组件、kube-apiserver组件和kubectl 组件构成的数据传输通道。第二应用通过其所在的容器组的拨号端口向代理容器组发送数据,代理容器组的监听端口接收第二应用发出的数据,将其作为代理容器组的进程标准输入数据流。代理容器组的进程标准输入数据流通过前述数据传输通道传输至本地环境的监听端口,从而转变为本地环境的进程标准输入数据流,由此实现了本地环境中的第一应用接收容器云环境中的第二应用发送的数据。
在一应用场景中,代理容器组的监听端口接收第二应用的数据,包括:对代理容器组的监听端口进行监听,响应于接收到第二应用的数据,建立代理容器组的监听端口与第二应用之间的数据传输通道,以持续接收第二应用的数据流。
在本申请实施例中,从代理容器组的多个端口中设置一个作为监听端口,用于接收第二应用的数据,当监听到代理容器组的监听端口接收到第二应用的数据时,建立代理容器组的监听端口与第二应用所在容器组的拨号端口之间的数据传输通道,对第二应用的数据流进行持续接收。
在一些可选实施例中,容器云环境为Kubernetes集群,Kubernetes集群,包括kubectl 组件、kube-apiserver组件和kubelet组件,相应地,将代理容器组的进程标准输入输出数据流与本地环境的进程标准输入输出数据流进行绑定,包括:基于kubectl 组件、kube-apiserver组件和kubelet组件,建立代理容器组的端口与本地环境的端口之间的数据传输通道,以绑定代理容器组和本地环境的进程标准输入输出数据流。进一步的,代理容器组的端口与本地环境的端口之间的数据传输通道允许第一应用与第二应用进行多次数据交互。
在本申请实施例中,Kubernetes集群中还部署有控制节点,控制节点中部署有kube-apiserver组件;工作节点中部署有kubelet组件;本地环境的端口依次通过kubectl组件、kube-apiserver组件、kubelet组件与代理容器组的端口建立数据传输通道。
在本申请实施例中,在本地环境中设置测试工具,配置本地环境端口与Kubernetes集群中工作节点的代理容器组的端口之间的映射关系,测试工具通过kubectl组件向控制节点上的kube-apiserver组件发送命令,以及通过工作节点上的kubelet组件,建立代理容器组的端口与本地环境的端口之间的数据传输通道。从而将代理容器组的进程标准输入输出数据流与本地环境的进程标准输入输出数据流绑定。当Kubernetes集群中设置的代理容器组出现故障或其它异常时,kubelet组件能够通过其对同一工作节点上的每个容器组的运行状态的监测,自动选择其它空闲的容器组或者创建新的空闲容器组作为本地环境的代理容器组,并自行变更进程标准输入输出数据流的绑定关系。
如图3、图4所示,当Kubernetes集群中的其它容器组(即第二应用)访问第一应用时,Kubernetes集群中的其它容器组通过向代理容器组的TCP监听端口发送进程标准输入数据流的方式访问代理容器组,通过本地环境的端口与代理容器组的端口之间的映射关系,将代理容器组的TCP监听端口映射到本地环境的端口,当代理容器组的TCP监听端口收到进程标准输入数据流时,将进程标准输入数据流通过kubelet组件、kube-apiserver组件、kubectl 组件传输至本地环境,作为本地环境中第一应用的输入数据,第一应用对输入数据进行处理后,处理结果沿原路径返回,通过代理容器组的TCP监听端口向其它容器组(即第二应用)反馈处理结果。
如图5、图6所示,在本地环境的第一应用访问Kubernetes集群中的其它容器组(即第二应用)时,是通过代理容器组随机选择TCP拨号端口向Kubernetes集群中的其它容器组发送进程标准输出数据流的方式来访问其它容器组的。具体的,将本地环境的端口映射的代理容器组的TCP拨号端口,或者将本地环境全局映射到代理容器组,当需要访问Kubernetes集群中的其它容器组时,将第一应用发出的进程标准输出数据流通过kubectl组件、kube-apiserver组件、kubelet组件传输至代理容器组,从代理容器组的TCP拨号端口向其它容器组发出,并通过代理容器组的TCP拨号端口接收其它容器组反馈的处理结果。
在本申请实施例中,当第一应用的运行依赖代理容器组的环境变量时,基于映射关系,同步代理容器组的环境变量至本地环境,以便由第一应用调用环境变量。具体的,将代理容器组的环境变量通过kubelet组件、kube-apiserver组件、kubectl 组件同步至本地环境,由第一应用在本地环境中运行时直接调用。
在本申请实施例中,当第一应用的运行依赖代理容器组的系统文件时,基于映射关系,同步代理容器组的系统文件至本地环境,以便由第一应用调用系统文件。具体的,将代理容器组的系统文件通过kubelet组件、kube-apiserver组件、kubectl 组件同步至本地环境,由第一应用在本地环境中运行时直接调用。
在本申请实施例中,通过kubelet组件、kube-apiserver组件、kubectl建立了代理容器组的端口与本地环境的端口之间的数据传输通道,当第一应用在本地环境运行后,对代理容器组的TCP监听端口进行监听,当代理容器组的TCP监听端口接收到其它容器组(即第二应用)的访问时,将相应的进程标准输入数据流传输给本地环境中运行的第一应用进行处理;当第一应用访问其它容器组(第二应用)时,将相应的进程标准输出数据流由本地环境传输至代理容器组的拨号端口发出,由代理容器组代替本地环境运行的第一应用与其它容器组进行数据交互。籍此,将本地环境作为容器云环境中代理容器组的模拟环境,在本地完成对第一应用的代码的编写或修改,并对代码进行编译后,编译生成的文件不需要再使用容器云环境的资源,而是使用本地环境的资源,将编译生成的文件直接在本地环境中运行,实现在本地环境完成第一应用的开发和调试。
需要说明的是,本申请实施例中的技术方案还可以用于Virtual Machine(VM)、Docker、Secure Shell(SSH)等远程连接的服务器等网络不可直达但存在连接通道的应用场景。
此外,本申请实施例中的技术方案可以通过自行编写的集成测试工具来实现,在测试工具中实现对本地环境的端口与代理容器组的端口之间的映射关系的配置,在测试工具中输入与第二应用进行数据交互的交互指令,在测试工具中获得测试日志等测试结果信息。
示例性系统
图7为根据本申请的一些实施例提供的一种基于容器云环境的本地模拟系统的结构示意图;如图7所示,该容器云环境中部署有工作节点,该基于容器云环境的本地模拟系统包括:代理容器组设置单元701和映射关系配置单元702。代理容器组设置单元701,配置为在容器云环境中设置本地环境的代理容器组;其中,代理容器组部署于工作节点;映射关系配置单元702,配置为配置本地环境的端口与代理容器组的端口之间的映射关系,以将代理容器组的进程标准输入输出数据流与本地环境的进程标准输入输出数据流进行绑定,使得第一应用通过代理容器组的端口与第二应用进行数据交互;其中,第一应用部署于本地环境,第二应用部署于容器云环境,第二应用用于对第一应用进行调试。
在一些可选实施例中,第二应用通过代理容器组的进程标准输入输出数据流,与代理容器组进行数据交互,相应的,映射关系配置单元702进一步配置为响应于第一应用接收到与第二应用进行数据交互的交互指令,基于映射关系,第一应用通过本地环境的进程标准输入输出数据流,与第二应用进行数据交互;其中,交互指令包括代理容器组的名称。
在一些可选实施例中,本地环境的端口和代理容器组的端口均包括拨号端口,相应的,映射关系配置单元702进一步配置为根据交互指令,基于映射关系,第一应用通过本地环境的拨号端口,发出本地环境的进程标准输出数据流;代理容器组的拨号端口向第二应用发出代理容器组的进程标准输出数据流。
在一些可选实施例中,本地环境的端口和代理容器组的端口均包括监听端口,相应的,映射关系配置单元702进一步配置为根据交互指令,基于映射关系,代理容器组的监听端口接收第二应用的数据,并作为代理容器组的进程标准输入数据流;第一应用通过本地环境的监听端口接收代理容器组的进程标准输入数据流。
在一些可选实施例中,映射关系配置单元702进一步配置为对代理容器组的监听端口进行监听,响应于接收到第二应用的数据,建立代理容器组的监听端口与第二应用所在容器中的拨号端口之间的数据传输通道,以持续接收第二应用的数据流。
在一些可选实施例中,容器云环境为Kubernetes集群,Kubernetes集群包括kubectl 组件、kube-apiserver组件和kubelet组件,相应地,相应地,映射关系配置单元702进一步配置为基于kubectl 组件、kube-apiserver组件和kubelet组件,建立代理容器组的端口与本地环境的端口之间的数据传输通道,以绑定所述代理容器中和所述本地环境的进程标准输入输出数据流。
在一些可选实施例中,代理容器组的端口与本地环境的端口之间的数据传输通道允许第一应用与第二应用进行多次数据交互。
本申请实施例提供的基于容器云环境的本地模拟系统能够实现上述任一基于容器云环境的本地模拟方法实施例的步骤、流程,并达到相同的有益效果,在此不再一一赘述。
示例性设备
图8为根据本申请的一些实施例提供的电子设备的结构示意图;如图8所示,该电子设备包括:
一个或多个处理器801;
计算机可读介质,可以配置为存储一个或多个程序802,一个或多个处理器801执行一个或多个程序802时,实现如下步骤:在容器云环境中设置本地环境的代理容器组;其中,代理容器组部署于工作节点;配置本地环境的端口与代理容器组的端口之间的映射关系,以将代理容器组的进程标准输入输出数据流与本地环境的进程标准输入输出数据流进行绑定,使得第一应用通过代理容器组的端口与第二应用进行数据交互;其中,第一应用部署于本地环境,第二应用部署于容器云环境,第二应用用于对第一应用进行调试。
图9为根据本申请的一些实施例提供的电子设备的硬件结构图;如图9所示,该电子设备的硬件结构可以包括:处理器901、通信接口902、计算机可读介质903和通信总线904。
其中,处理器901、通信接口902、计算机可读介质903通过通信总线904完成相互间的通信。
可选地,通信接口902可以为通信模块的接口,如GSM模块的接口。
其中,处理器901具体可以配置为:在容器云环境中设置本地环境的代理容器组;其中,代理容器组部署于工作节点;配置本地环境的端口与代理容器组的端口之间的映射关系,以将代理容器组的进程标准输入输出数据流与本地环境的进程标准输入输出数据流进行绑定,使得第一应用通过代理容器组的端口与第二应用进行数据交互;其中,第一应用部署于本地环境,第二应用部署于容器云环境,第二应用用于对第一应用进行调试。
处理器可以是通用处理器,包括中央处理器(central processing unit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如:IPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如Ipad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如:iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可以将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器存储介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的基于容器云环境的本地模拟方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和涉及约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述得设备及系统实施例仅仅是示意性的,其中作为分离不见说明的单元可以使或者也可以不是物理上分开的,作为单元提示的不见可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上实施方式仅用于说明本申请实施例,而非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专业保护范围应由权利要求限定。

Claims (10)

1.一种基于容器云环境的本地模拟方法,其特征在于,所述容器云环境中部署有工作节点;
所述基于容器云环境的本地模拟方法包括:
在所述容器云环境中设置本地环境的代理容器组;其中,所述代理容器组部署于所述工作节点;
在所述本地环境的端口与所述代理容器组的端口之间建立数据传输通道,并基于所述数据传输通道将所述代理容器组的进程标准输入输出数据流与所述本地环境的进程标准输入输出数据流进行绑定,使得第一应用通过所述代理容器组的端口与第二应用进行数据交互;其中,所述第一应用部署于所述本地环境,所述第二应用部署于所述容器云环境,所述第二应用用于对所述第一应用进行调试。
2.根据权利要求1所述的基于容器云环境的本地模拟方法,其特征在于,所述第二应用通过所述代理容器组的进程标准输入输出数据流,与所述代理容器组进行数据交互,
相应地,
所述第一应用通过所述代理容器组的端口与所述第二应用进行数据交互,包括:
响应于所述第一应用接收到与所述第二应用进行数据交互的交互指令,基于所述数据传输通道,所述第一应用通过所述本地环境的进程标准输入输出数据流,与所述第二应用进行数据交互;其中,所述交互指令包括所述代理容器组的名称。
3.根据权利要求2所述的基于容器云环境的本地模拟方法,其特征在于,所述本地环境的端口和所述代理容器组的端口均包括拨号端口,
相应地,
所述基于所述数据传输通道,所述第一应用通过所述本地环境的进程标准输入输出数据流,与所述第二应用进行数据交互,包括:
根据所述交互指令,基于所述数据传输通道,所述第一应用通过所述本地环境的拨号端口,发出所述本地环境的进程标准输出数据流;
所述代理容器组的拨号端口向所述第二应用发出所述代理容器组的进程标准输出数据流。
4.根据权利要求2所述的基于容器云环境的本地模拟方法,其特征在于,所述本地环境的端口和所述代理容器组的端口均包括监听端口,
所述基于所述数据传输通道,所述第一应用通过所述本地环境的进程标准输入输出数据流,与所述第二应用进行数据交互,包括:
根据所述交互指令,基于所述数据传输通道,所述代理容器组的监听端口接收所述第二应用的数据,并作为所述代理容器组的进程标准输入数据流;
所述第一应用通过所述本地环境的监听端口接收所述代理容器组的进程标准输入数据流。
5.根据权利要求4所述的基于容器云环境的本地模拟方法,其特征在于,所述代理容器组的监听端口接收所述第二应用的数据,包括:
对所述代理容器组的监听端口进行监听,响应于接收到所述第二应用的数据,建立所述代理容器组的监听端口与所述第二应用所在容器组的拨号端口之间的所述数据传输通道,以持续接收所述第二应用的数据流。
6.根据权利要求1-5中任一项所述的基于容器云环境的本地模拟方法,其特征在于,所述容器云环境为Kubernetes集群,所述Kubernetes集群包括kubectl组件、kube-apiserver组件和kubelet组件,
相应地,
所述基于所述数据传输通道将所述代理容器组的进程标准输入输出数据流与所述本地环境的进程标准输入输出数据流进行绑定,包括:
基于所述kubectl组件、所述kube-apiserver组件和所述kubelet组件,建立所述代理容器组的端口与所述本地环境的端口之间的所述数据传输通道,以绑定所述代理容器组和所述本地环境的进程标准输入输出数据流。
7.根据权利要求6所述的基于容器云环境的本地模拟方法,其特征在于,所述代理容器组的端口与所述本地环境的端口之间的所述数据传输通道允许所述第一应用与所述第二应用进行多次数据交互。
8.一种基于容器云环境的本地模拟系统,其特征在于,所述容器云环境中部署有工作节点;
所述基于容器云环境的本地模拟系统包括:
代理容器组设置单元,配置为在所述容器云环境中设置本地环境的代理容器组;其中,所述代理容器组部署于所述工作节点;
数据传输通道建立单元,配置为在所述本地环境的端口与所述代理容器组的端口之间建立数据传输通道,并基于所述数据传输通道将所述代理容器组的进程标准输入输出数据流与所述本地环境的进程标准输入输出数据流进行绑定,使得第一应用通过所述代理容器组的端口与第二应用进行数据交互;其中,所述第一应用部署于所述本地环境,所述第二应用部署于所述容器云环境,所述第二应用用于对所述第一应用进行调试。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序为如权利要求1-7任一所述的基于容器云环境的本地模拟方法。
10.一种电子设备,其特征在于,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如权利要求1-7任一所述的基于容器云环境的本地模拟方法。
CN202110977093.3A 2021-08-24 2021-08-24 基于容器云环境的本地模拟方法、系统、介质和电子设备 Active CN113656152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110977093.3A CN113656152B (zh) 2021-08-24 2021-08-24 基于容器云环境的本地模拟方法、系统、介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110977093.3A CN113656152B (zh) 2021-08-24 2021-08-24 基于容器云环境的本地模拟方法、系统、介质和电子设备

Publications (2)

Publication Number Publication Date
CN113656152A CN113656152A (zh) 2021-11-16
CN113656152B true CN113656152B (zh) 2023-07-21

Family

ID=78492754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110977093.3A Active CN113656152B (zh) 2021-08-24 2021-08-24 基于容器云环境的本地模拟方法、系统、介质和电子设备

Country Status (1)

Country Link
CN (1) CN113656152B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115469943B (zh) * 2022-09-22 2023-05-16 安芯网盾(北京)科技有限公司 Java虚拟终端命令执行的检测方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107911463A (zh) * 2017-11-27 2018-04-13 深信服科技股份有限公司 一种业务跨云架构及其创建方法、管理方法
CN112035217A (zh) * 2020-08-31 2020-12-04 腾讯科技(深圳)有限公司 集群的处理方法、装置、电子设备及计算机可读存储介质
CN113114716A (zh) * 2021-02-25 2021-07-13 浙江工商大学 一种边云协同管控系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106380B2 (en) * 2019-11-19 2021-08-31 Vmware, Inc. Migration of storage for workloads between desktop and cloud environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107911463A (zh) * 2017-11-27 2018-04-13 深信服科技股份有限公司 一种业务跨云架构及其创建方法、管理方法
CN112035217A (zh) * 2020-08-31 2020-12-04 腾讯科技(深圳)有限公司 集群的处理方法、装置、电子设备及计算机可读存储介质
CN113114716A (zh) * 2021-02-25 2021-07-13 浙江工商大学 一种边云协同管控系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于云数据库安全代理的任务调度研究与实现;张世哲;《中国优秀硕士学位论文全文数据库 信息科技辑》;第2019年卷(第2期);全文 *

Also Published As

Publication number Publication date
CN113656152A (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
US20200272431A1 (en) Software defined network controller
US9838294B2 (en) Network development and testing as a cloud service
CN104967585B (zh) 一种远程调试移动终端的方法和装置
US11030079B2 (en) Service virtualization platform
CN107463499A (zh) Adb远程连接方法、装置、设备及存储介质
US11032126B2 (en) Diagnostic traffic generation for automatic testing and troubleshooting
CN105450463A (zh) 硬件设备的调试方法、装置和系统
EP3923549A1 (en) Data downloading method and related apparatus
CN112732572A (zh) 服务的测试方法、装置及系统、存储介质、电子装置
CN108733496A (zh) 事件处理方法和装置
CN104298602A (zh) 一种调试应用程序的方法及装置
CN113656152B (zh) 基于容器云环境的本地模拟方法、系统、介质和电子设备
CN114510452A (zh) 片上系统soc集成方法、装置及电子设备
CN113722205A (zh) 一种应用调试方法、装置、设备及介质
Moro et al. Fop4: Function offloading prototyping in heterogeneous and programmable network scenarios
CN108093036A (zh) 一种获取资源的方法及装置
CN104570967A (zh) 基于Android系统的远程控制方法及系统
CN116418791A (zh) 固件升级方法、固件升级系统、服务器及存储介质
CN112929914A (zh) 网络链路模拟辅助测试的系统及方法
CN110971696B (zh) 一种实现虚拟电子卡通讯的系统和方法
CN112968812A (zh) 一种网络性能测试方法、装置、设备及存储介质
CN115174461B (zh) 一种基于网络请求的系统测试方法以及装置
CN109508193A (zh) 一种应用部署运行方法、装置、终端设备和介质
CN109976876B (zh) 加速器管理方法和装置
CN114500302B (zh) 一种ice服务编排方法、装置、终端设备以及存储介质

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