一种基于浏览器进入容器能力的解决方法与流程

文档序号:18464056发布日期:2019-08-17 02:17阅读:173来源:国知局
一种基于浏览器进入容器能力的解决方法与流程

本发明涉及计算机技术领域,具体而言,涉及一种基于浏览器进入容器能力的解决方法。



背景技术:

容器(container)就像码头上的集装箱一样,把我们的应用打包封装为标准的镜像,是目前软件交付的标准,正直实现“一次构建,处处部署”。使用容器给开发团队提供了极大的便利,开发人员无需操心配置环境,让程序想跑到哪都行。使用容器技术,对运维团队,有如今成为容器集群管理事实标准的kubernetes在手,使得我们运维工作可以通过自动化来完成。

在容器技术的大潮流的推动下,目前很多大中小企业在使用容器构建符合公司业务的devops平台。在devops平台中,直接通过命令行的形式进入容器不仅不利于管理和操作,学习成本也很高,而可以通过控制台在浏览器上直接安全便捷地进入容器进行操作成为需要解决的迫切需求。



技术实现要素:

本发明的目的在于提供一种基于浏览器进入容器能力的解决方法,能够解决上述提到的至少一个技术问题。

具体方案如下:

一种基于浏览器进入容器能力的解决方法,该方法包括以下步骤,

s1、获取权限认证,通过读取请求url的对应信息反馈权限认证的值;

s2、使用上述获取权限认证的值,通过websocket查询容器信息,并反馈url地址,拼接url地址;

s3、使用浏览器打开上述反馈回的拼接好的url地址,进入容器。

本申请中所述步骤s1中请求权限认证是通过使用restfulapi的post方法调用获取权限认证的接口方法获取的。

本申请中所述步骤s2中获取上述权限认证的值后,将该值追加至浏览器接口地址后面,然后再通过websocket查询容器信息,返回url地址。

本申请中所述websocket是通过调用kubernetesapiserver接口来查询容器信息的。

本申请中返回websocket的url地址只能使用一次。

本申请中只能使用一次的url地址在刷新或重新点击的情况下均会失效。

本申请中所述浏览器采用web浏览器。

本申请中所述浏览器与容器之间采用https协议的方式连接。

本申请中所述浏览器进入容器后,通过容器内的k8sapiserver获取查询内容器信息并将该查询内容信息反馈至权限认证,反馈回url地址。

本申请中浏览器经过权限认证后,需要将该认证信息与浏览器信息的对应关系写入到数据库后再进入到容器。

本发明实施例的上述方案与现有技术相比,至少具有以下有益效果:

该方法目前在于提供在容器化的平台上直接进入容器的需求。实现基于https和websocket连接的服务,通过websocket和浏览器通信的协议,直接使用kubernetes的apiserver接口和容器进行实时的通信,在web浏览器上实现较ssh更为安全可靠便捷的操作容器的解决方案。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了根据本发明实施例的流程图。

图2示出了一种能够运行基于浏览器进入容器能力的解决方法所封装程序的电子设备及该电子设备的模块构成原理图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述……,但这些……不应限于这些术语。这些术语仅用来将……区分开。例如,在不脱离本发明实施例范围的情况下,第一……也可以被称为第二……,类似地,第二……也可以被称为第一……。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者装置中还存在另外的相同要素。

下面结合附图详细说明本发明的可选实施例。

实施例1

一种基于浏览器进入容器能力的解决方法,该方法包括以下步骤:

(1)获取权限认证

外部平台请求进入容器,使用restfulapi的post方法调用获取权限认证的接口方法获取权限认证,该方法查询数据库找到权限对应关系通过后,读取请求rul的对应信息反馈一个权限认证的值

(2)拼接url地址

使用上一步获取到的权限认证的值,将其追加到浏览器接口地址后面,通过websocket通信调用kubernetesapiserver接口查询容器信息,并返回rul地址。而且这个url只能使用一次,刷新或者重新点击都会失效。

(3)进入容器

使用浏览器打开上一步返回地拼接好的url地址即可进入容器。

在上述实施例的情况下,本申请所公开的从浏览器进入容器的解决方法主要包括两部分,第一部分包括提供webterminal,第二部分包括提供权限认证。

实施例2

一种电子设备,其能够用于基于浏览器进入容器能力的解决方法,该电子设备至少包括一个处理器,以及与处理器通信连接的存储器,包括与广域网、局域网或者运营商提供的互联网进行数据发送的网络连接器,其中所述的存储器上存储有可被处理器执行的指令或指令集,所述的网络连接器能够在处理器的指令下向网络发送请求并且接收网络反馈回的请求信息。所述存储器上存储的指令或者指令集其可以是基于硬件的可执行文件或者与硬件结合的嵌入的系统文件。处理器通过执行存储于硬件上的指令或者指令集,利用网络通讯协议向对应容器发送登录请求,对应的容器接收到上述请求后能够对此请求进行验证,并且能够在验证请求通过后,通过网络通讯协议向该电子设备反馈允许登录的请求信息。

实施例2

一种电子设备,其中所述的网络连接器所使用的网络通讯协议为ipv4或ipv6、或上述两种通讯协议的结合。所述的电子设备可以为移动电话、笔记本电脑、数字广播接收器、pda、pad、pmp、车载终端或者移动tv、台式计算机等可以设置有浏览器软件的电子设备,但是需要声明的是,上述电子设备并不能够只限定于上述的设备,当然上述的设备也就不能够理解为是对本申请保护范围的限定。

实施例3

一种浏览器,其能够通过安装于上述实施例中所述的电子设备上,并且根据电子设备本身的硬件识别码来实现与特定容器的接入验证,通过https和websocket连接服务及websocket及浏览器的协议实现较ssh更为安全可靠、便携的操作容器的解决方法。

在上述实施例1中,所述的基于浏览器进入容器能力的解决方法,其是因为目前的web控制台方案主要利用传统的ssh协议登录到容器宿主机,再利用docker命令进入特定容器。由于首先需要登录到宿主机进行操作,使得方案在安全性,和便捷性上都存在很大的问题。相比而言,直接登录到容器内的方案在安全性和便利性上都会有很大的提升

目前如今容器的更多还是直接使用传统的ssh协议登录到容器的管理节点或者宿主机上直接使用容器的命令行进入指定容器。无论是安全性和便捷性都受到极大的挑战。而且kubernetes/dashboard社区也不支持websocket的组件是kubectlproxy,而这个组件是在用户本地的。

结合我们的目前使用的场景中,我们使用kubernetesapiserver这个接口,直接调用apiserver的exec接口来建立websocket连接,使加密的https协议保证连接的安全性,并结合最小权限认证。

本申请使用kubernetes容器化部署,包括进入到容器的模板,和已经获得权限认证的模板,在devops的web页面上找到对应的容器,有调用我们接口进入容器的入口。通过https和websocket连接服务及websocket及浏览器的协议实现较ssh更为安全可靠、便携的操作容器的解决方法。

实施例2中提供了一种基于浏览器进入容器能力的解决方法所需要采用的电子设备,该电子设备从便携性能上可以分为便携式移动终端和终端,其中便携式移动终端多为嵌入式的系统,而以台式机为代表的终端则为依据硬件所搭载的系统。但是无论是何种的电子设备,其都需要有用于存储与安装浏览器的存储器,用于处理与调取指令的处理器,用于帮助处理器和安装于存储器上的浏览器与网络进行连接的网络连接器。其中所述的处理器包括中央处理器、图形处理器中的一种或者两种的组合,其所述的存储器可以包括只读存储器rom和从只读存储器rom中加载到随机访问器ram。在只读存储器rom中存储有浏览器的指令或者指令集,处理器能够从只读存储器rom中调取相应的指令或者指令集,并且根据指令或指令集的操作限制向随机访问存储器ram中写入各种所需的程序和数据,并且通过总线与网络连接器进行通讯,将浏览器的数据通过局域网、广域网或者运营商提供的互联网向处于网络另一端的容器进行请求信息的发送或者接收反馈回的请求信息。

在上述的电子设备中,其至少应当包括触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等一种或者多种组合的输入装置,包括lcd液晶显示器、扬声器、振动器等的一种或者多种形式的输出装置,包括磁带、磁盘、硬盘、便携式存储装置等的一种或者多种的存储器;所述的网络连接器包括无线网络连接器和有线网络连接器,其中所述的无线网络连接器包括wifi、wlan、蓝牙、红外通讯中的一种或者多种,有线网络连接器包括光纤、有线网络中的一种或者两种的组合。但是应当理解的是,作为本领域的技术人员,其应当具有足够的现有技术手段的储备,本申请中所述的电子设备并不能够进行穷尽列举,也不要求在实施例中列举所有具备本申请所述性能或者结构的装置,其具有替代的实施方式、电子设备均应当包含在本申请的保护范围内。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。

例如,在本申请中,上述基于浏览器的进入容器能力的解决方法,可以通过诸如vb、c、c++、c#、java等语言进行编程与封装,并且其能够设置于计算机,并且设置成计算机可读介质上的计算机程序。回到本申请,其浏览器是可以通过网络进行下载的,也可以通过离线介质安装的形式进行安装。本申请中所述的在线下载是指从网络上下载与安装对应浏览器的安装包或者程序集、指令集,本申请中所述的离线介质安装至的是计算机上可读介质上所载有的程序可执行文件或者可执行的指令集。具体来讲,在本申请中,所述的离线介质指的是计算机可读信号介质或者计算机可读存储介质中的一种或者两者的任意组合。

本申请中所述的计算机可读信号介质包括光、电、光电、磁、电磁、红外或者半导体系统的装置或器件。所述的计算机可读存储介质包括光盘、光存储器件、磁存储器件、随机存储器、硬盘、便携式计算机磁盘等一种或者多种的结合。

在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。

本申请中所述的浏览器是通过一种或者多种的软件设计语言来实现的,同样容器也是通过一种或者多种的软件设计语言来实现的。软件设计语言在上述段落中已经列举出一些,包括诸如c语言或者类似的语言。上述设置的浏览器可以在电子设备上进行全部的执行或者部分的执行,并且所执行的结果能够通过网络与容器端进行信息的交互。

本申请中所述的容器为设置在云端服务器上的服务程序,其能够通过包括局域网(lan)或广域网(wan)在内的任意一种网络与在用户电子设备上的浏览器进行信息的传递,与用户电子设备签名信息的验证。本技术方案中所使用的容器采用的是kubernetes容器的部署方法,其设定了如何进入容器的模式以及如何获得容器权限认证的模式,当用户所在的电子设备端的证书与容器所在的云服务器上的证书相同且互相验证后,位于用户电子设备端的浏览器能够通过安全有效的https连接协议来实现对容器的连接服务,并且辅助以websocket服务来实现双重的信息保护,以增加在调用服务器接口服务时信息的安全。

本申请在附图1虽然公开了一种基于浏览器进入容器能力的解决方法的流程图,并且在上述实施例、上述段落中对所涉及到的信息处理流程、程序处理步骤、电子设备、存储介质等做出了详细的描述,使得通过上述描述可以清楚认识到流程图中所代表的方框可以为具体的参与流程的电子设备或功能组件,也可以是程序段或者代码的一部分。该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1