WO2018113443A1 - 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 - Google Patents

一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 Download PDF

Info

Publication number
WO2018113443A1
WO2018113443A1 PCT/CN2017/110405 CN2017110405W WO2018113443A1 WO 2018113443 A1 WO2018113443 A1 WO 2018113443A1 CN 2017110405 W CN2017110405 W CN 2017110405W WO 2018113443 A1 WO2018113443 A1 WO 2018113443A1
Authority
WO
WIPO (PCT)
Prior art keywords
linux container
linux
cluster
user
container cluster
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.)
Ceased
Application number
PCT/CN2017/110405
Other languages
English (en)
French (fr)
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.)
Peking University
Original Assignee
Peking University
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 Peking University filed Critical Peking University
Publication of WO2018113443A1 publication Critical patent/WO2018113443A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4555Para-virtualisation, i.e. guest operating system has to be modified
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/45595Network integration; Enabling network access in virtual machine instances

Definitions

  • the invention is a method and device for accessing a Linux container cluster by using a browser in a multi-user environment, and belongs to the technical field of software.
  • the Linux container is an operating system layer virtualization technology used to isolate processes and resources. Compared with virtual machine technology, Linux containers do not require instruction-level simulation, so they are more lightweight and have higher performance. They are one of the most eye-catching technologies in the field of cloud computing.
  • a Linux container cluster is a virtual cluster formed by connecting multiple Linux containers distributed on a physical cluster by using a network.
  • distributed applications such as Spark, MPI, etc. can be developed and deployed, and since the underlying foundation is a Linux container, operations on the virtual cluster do not affect the physical server, and have high security and Availability.
  • a multi-user environment refers to a cluster of Linux containers in the same physical cluster. Each cluster consists of several Linux containers. These clusters can belong to different users. In such an environment, the virtual cluster needs to be isolated.
  • the traditional method of accessing the Linux container cluster is to use the local ssh client to remotely log in through ssh. This requires the user to install the ssh client software locally, and also the user to remember the address, user name and address of the target cluster. Password, convenience is not enough.
  • Jupyter is a tool that uses a browser to access a computer. By using Jupyter, you can use your browser to perform various operations on your computer, including file reading and editing, terminal operations, and interactive programming in multiple languages, including R, Python.
  • Jupyter allows us to use it for access to Linux containers, but it only works for a single Linux container and does not access all the containers in a Linux container cluster at the same time; at the same time, when the Linux container does not have a global IP address At this time, the Jupyter interface of the container cannot be directly accessed; finally, in the case of multiple users, there is also the problem that different users can access the same container with each other.
  • the present invention is directed to the above problem, and realizes a method and device for accessing a Linux container cluster by using a browser in a multi-user environment, so that the user can access the Linux container cluster through the browser, and at the same time ensure the security and reliability in a multi-user environment. Sex.
  • a method for accessing a Linux container cluster by using a browser in a multi-user environment comprising the following steps:
  • the Master node and several Worker nodes are deployed on the Linux container cluster, wherein the Master node is used for centralized management, and the Worker node is a carrier of the Linux container;
  • the master node When creating a Linux container cluster, the master node allocates a subnet to the Linux container cluster and assigns an IP address to the Linux container from within the subnet (so that the containers in the same container cluster will be in the same subnet);
  • the Master node processes the user's request to create a Linux container cluster and distributes it to the Worker node, and the Worker node creates a Linux container;
  • the master node When the user accesses the Linux container cluster, the master node authenticates the user information, and if the authentication succeeds, the corresponding Jupyter page is entered, thereby implementing access to the Linux container cluster.
  • a virtual bridge is built on the host where the Linux container is located, and a GRE (Generic Routing Encapsulation) tunnel is set up between the virtual bridges, so that Linux containers distributed on different hosts can be configured.
  • GRE Generic Routing Encapsulation
  • iptables the Linux kernel integrated IP packet filtering system
  • NAT Network Address Translation
  • the master node uses a partner algorithm to assign a subnet to the Linux container cluster, and then randomly selects an IP address from the IP address segment of the subnet and assigns it to the Linux container.
  • VLAN Virtual Local Area Network
  • host (host) information is registered between the Linux containers in the same Linux container cluster, and ssh (Secure Shell, Secure Shell Protocol) authentication-free login is performed between each other.
  • ssh Secure Shell, Secure Shell Protocol
  • the user's information is stored by the browser's cookie.
  • the user information stored in the browser cookie is sent to the server, and the user information is authenticated on the server side, and the verification is successful. Go to the launched Jupyter page.
  • users can access the web-based terminal and log in to other Linux containers in the cluster without authentication, making it easy to develop and deploy distributed applications.
  • a device for accessing a Linux container cluster by using a browser in a multi-user environment including a master node deployed on a Linux container cluster, a plurality of worker nodes, and an http proxy tool;
  • the master node is used for centralized management, Handling the user's request to create a Linux container cluster and distributing it to the Worker node;
  • the Worker node is the carrier of the Linux container, and is used to process the operation request sent by the Master to the Linux container; when creating the Linux container cluster, the Master The node allocates a subnet to the Linux container cluster and assigns an IP address to the Linux container from inside the subnet;
  • the http proxy tool is used to bind the URL of the Linux container cluster access to the Jupyter running port of the Linux container, Implement user access to the Linux container cluster.
  • the user can click the Create Linux Container Cluster button on the webpage to select relevant parameters, such as memory quota, disk quota, etc., and then create a Linux container cluster for the user on the server side.
  • the user can expand the existing cluster of Linux containers, and by clicking the corresponding button on the webpage, a new Linux container can be created and connected to the original cluster through the network.
  • the user can shrink the existing Linux container cluster, and click a corresponding button on the webpage to delete a Linux container in a cluster.
  • the invention enables the user to access the Linux container cluster through the browser while ensuring the security and reliability in a multi-user environment.
  • the user can click on the corresponding button on the web page to implement the creation, expansion or contraction of the Linux container cluster on the server side.
  • Users can use Jupyter to develop and deploy applications on the web.
  • users can also develop and deploy distributed applications quickly and easily.
  • Figure 1 is a block diagram of the apparatus of the present invention.
  • Figure 2 is a diagram showing the network structure of the apparatus of the present invention.
  • FIG. 3 is a flow chart of creating and accessing a container cluster in accordance with the present invention.
  • FIGS 4 and 5 are flow diagrams of the buddy algorithm used by the Linux container cluster subnet allocation.
  • FIG. 1 is an architectural diagram of the device of the present invention.
  • the device is deployed on a cluster and is a Master-Worker mode system.
  • the Master node (the master node, or may be referred to as a management node) performs centralized management for processing the URL request sent by the user by clicking the web button, parsing it, and distributing it to the Worker node (work node), Worker
  • the node is the carrier of the Linux container and handles the operation request from the master for the Linux container.
  • the invention also provides a web interface for the user to operate Work.
  • the http proxy tool configure-http-proxy is used to implement the parsing of the URL. Initially, there is no Linux container cluster, and the proxy tool sends all http requests to the server of the master node by default, as shown in FIG. 1 .
  • Figure 2 is a network diagram of the device.
  • the device uses the open vSwitch tool to build a virtual bridge on each host, and establishes a GRE tunnel between these bridges, so that they can directly communicate with each other, and use iptables for NAT mapping, so that the Linux container sends and receives the network.
  • the package can be passed through the host's network card, allowing the Linux container to communicate with the external network.
  • FIG. 3 is a flow chart of creating and accessing a container cluster in accordance with the present invention.
  • a URL for creating a request is sent to the master node, and the master uses the partner algorithm (as shown in FIG. 4 and FIG. 5) to assign a subnet to the cluster, and then from the child.
  • An IP address is randomly selected from the IP address segment of the network and assigned to the first Linux container, and a VLAN ID is assigned to the cluster.
  • the Master selects a Worker node and sends a request to create a Linux container to it.
  • the Worker node After receiving the request, the Worker node generates a configuration file according to the IP address assigned to the container and the constructed virtual bridge information, and the parameters filled in when the user is created, and then invokes the command of the Linux container to create a profile based on the configuration file.
  • Linux container The port that connects to the IP address is then tagged with the VLAN ID of the cluster on the host bridge. Then in the Linux container, start the Jupyter with the user and cluster information as parameters, and set the authentication URL that Jupyter accesses.
  • the Master After the worker's work processing is completed, the Master will bind the Jupyter running port of the container to a URL of a specified format. This URL is unique to each cluster and is different from each other by calling configure-http-proxy. API implementation.
  • the Master randomly selects an IP address from the subnet of the cluster (as shown in Figure 4), then selects a Worker node and sends a request to create a Linux container to it.
  • the Worker node receives the request, it generates a configuration file according to the IP address and virtual bridge information to which the container is assigned, and the parameters filled in when the user is created, and then invokes the command of the Linux container to create a Linux container based on the configuration file.
  • the port that connects to the IP address is then tagged with the VLAN ID of the cluster on the host bridge. Then in the original cluster
  • the other Linux container and the newly created Linux container respectively perform ssh-free authentication login and update the information of the host file.
  • the master finds the worker node where it is located according to the information of the Linux container to be deleted, and then sends a delete request to the worker node, and the corresponding worker node invokes a command to delete the Linux container. After that, the master will release the IP address of the deleted container to the address pool to be allocated, as shown in Figure 5.
  • the master When the user clicks the delete cluster button on the web page, the master reads the location of the worker node where all the Linux containers in the cluster are located, and sends a delete request to the worker nodes respectively. After all the Linux containers are deleted, the master releases the cluster. The IP address range of the assigned subnet.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种多用户环境下利用浏览器访问Linux容器集群的方法和装置。该方法在Linux容器集群上部署Master节点和若干Worker节点,其中Master节点进行集中的管理,用于处理用户通过点击网页按钮发来的URL请求,并将其解析,然后分发到Worker节点上,Worker节点是Linux容器的载体,并处理Master发来的对Linux容器的操作请求。本发明能够使用户通过浏览器访问Linux容器集群,同时保证在多用户环境下的安全可靠性;用户可以点击网页上的相应按钮,在服务器端实现Linux容器集群的创建、扩张或收缩,能够方便快捷地进行分布式应用的开发和部署。

Description

一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 技术领域
本发明是一种多用户环境下利用浏览器访问Linux容器集群的方法和装置,属于软件技术领域。
背景技术
Linux容器是一种操作系统层虚拟化技术,用来进行进程和资源的隔离。与虚拟机技术相比,Linux容器不需要指令级模拟,所以显得更为轻量,性能也更高,是目前云计算领域备受瞩目的技术之一。
Linux容器集群是指将分布于物理集群上的多个Linux容器利用网络连接起来,组成的虚拟集群。利用这样的虚拟集群,可以开发和部署诸如Spark,MPI等分布式应用,同时由于底层的基础是Linux容器,所以在虚拟集群上的操作不会对物理服务器产生影响,具有很高的安全性和可用性。
多用户环境是指在同一个物理集群下,有很多的Linux容器集群,每个集群由若干个Linux容器组成,这些集群可以属于不同的用户,在这样一个环境下,需要对虚拟集群进行隔离。
传统的对Linux容器集群进行访问的方法,是利用本地的ssh客户端,通过ssh进行远程登录,这就需要用户在本地安装ssh客户端软件,同时还要用户记住目标集群的地址、用户名和密码,便利性显得不足。
Jupyter是一个利用浏览器来对计算机进行访问的工具。通过使用Jupyter,可以直接使用浏览器在网页上对计算机进行各种操作,包括文件阅读和编辑,终端操作,以及包括R,python在内的多种语言的交互式编程。
Jupyter的这一功能使得我们可以将其用于Linux容器的访问中,但它仅适合单一Linux容器的场合,并不能同时访问一个Linux容器集群中的所有容器;同时,当Linux容器没有全局IP地址时,无法直接访问该容器的Jupyter界面;最后,在多用户的情况下,还有不同用户之间能互相访问同一容器的问题。
发明内容
本发明针对上述问题,实现了一种多用户环境下利用浏览器访问Linux容器集群的方法和装置,使用户能够通过浏览器访问Linux容器集群,同时保证在多用户环境下的安全可靠 性。
本发明采用的技术方案如下:
一种多用户环境下利用浏览器访问Linux容器集群的方法,包括以下步骤:
1)在Linux容器集群上部署Master节点和若干Worker节点,其中Master节点用于进行集中管理,Worker节点是Linux容器的载体;
2)在创建Linux容器集群时,Master节点为Linux容器集群分配一个子网,并从该子网内部为Linux容器分配IP地址(这样同一个容器集群内的容器会处于同一子网内);
3)Master节点处理用户的创建Linux容器集群的请求,并将其分发到Worker节点,由Worker节点创建Linux容器;
4)对创建的Linux容器进行Jupyter相关参数的配置,并启动Jupyter,通过http代理(配置于服务器端)将对Linux容器集群访问的URL绑定到Linux容器的Jupyter运行端口上;
5)当用户访问Linux容器集群时,由Master节点对用户信息进行认证,认证成功则进入对应的Jupyter页面,从而实现对Linux容器集群的访问。
进一步地,在Linux容器所在的宿主机上构建虚拟网桥,并在各虚拟网桥之间搭建GRE(Generic Routing Encapsulation,通用路由封装)隧道,使得分布于不同宿主机上的Linux容器之间能互相连通,并利用iptables(Linux内核集成的IP信息包过滤系统)做NAT(Network Address Translation,网络地址转换)映射使得Linux容器能与外部网络通信。
进一步地,Master节点使用伙伴算法为Linux容器集群分配一个子网,随后从该子网的IP地址段中随机选择IP地址并分配给Linux容器。
进一步地,使用VLAN(Virtual Local Area Network,虚拟局域网)技术防止Linux容器数量过多时造成的广播风暴。
进一步地,对同一个Linux容器集群内的Linux容器之间进行host(主机)信息登记,并进行互相之间的ssh(Secure Shell,安全外壳协议)免认证登陆。
进一步地,通过浏览器的cookie存储用户信息,当用户点击访问Linux容器集群的按钮时,会将存储于浏览器cookie中的用户信息发送到服务器端,在服务器端进行用户信息认证,验证成功,即可进入所启动的Jupyter页面内。在进入的Jupyter页面内,用户可以进入网页版终端进行操作,并可以免认证地登陆进集群内的其他Linux容器内,从而轻松地开发和部署分布式应用。
一种多用户环境下利用浏览器访问Linux容器集群的装置,包括部署在Linux容器集群上的Master节点、若干Worker节点和http代理工具;所述Master节点用于进行集中管理, 处理用户的创建Linux容器集群的请求,并将其分发到Worker节点;所述Worker节点是Linux容器的载体,用于处理Master发来的对Linux容器的操作请求;在创建Linux容器集群时,Master节点为Linux容器集群分配一个子网,并从该子网内部为Linux容器分配IP地址;所述http代理工具用于将对Linux容器集群访问的URL绑定到Linux容器的Jupyter运行端口上,以实现用户对Linux容器集群的访问。
采用本发明的方案,用户可以点击网页上的创建Linux容器集群按钮,选择相关参数,如内存限额,磁盘限额等之后,在服务器端为用户创建好Linux容器集群。
采用本发明的方案,用户可以对已存在的Linux容器集群进行扩张,通过点击网页上的对应按钮,可以新建Linux容器,并将其与原先的集群通过网络进行连接。
采用本发明的方案,用户可以对已存在的Linux容器集群进行收缩,通过点击网页上的对应按钮,可以删除一个集群内的某个Linux容器。
本发明的有益效果如下:
本发明能够使用户通过浏览器访问Linux容器集群,同时保证在多用户环境下的安全可靠性。采用本发明的方法,用户可以点击网页上的相应按钮,在服务器端实现Linux容器集群的创建、扩张或收缩。用户可以使用Jupyter,在网页上进行应用开发和部署,同时,基于底层的Linux容器集群,用户还可以方便快捷地进行分布式应用的开发和部署。
附图说明
图1为本发明装置的架构图。
图2是本发明装置的网络结构图。
图3为本发明创建和访问一个容器集群的流程图。
图4和图5是Linux容器集群子网分配所使用的的伙伴算法的流程图。
具体实施方式
下面通过具体实施例和附图,对本发明做进一步说明。
本发明实现了一个通过浏览器创建和访问Linux容器集群的装置,图1为本发明装置的架构图,该装置部署在一个集群上,是一个Master-Worker模式的系统。其中Master节点(主节点,或可称作管理节点)进行集中的管理,用于处理用户通过点击网页按钮发来的URL请求,并将其解析,然后分发到Worker节点(工作节点)上,Worker节点是Linux容器的载体,并处理Master发来的对Linux容器的操作请求。本发明同时还提供了web界面,方便用户操 作。
下面详细解释具体的实施方式。
在本发明中,使用了http代理工具configure-http-proxy来实现对URL的解析,初始时没有Linux容器集群,代理工具默认将所有http请求发送到Master节点的服务器上,如图1所示。
图2是本装置的网络结构图。本装置使用open vSwitch工具在每个宿主机上构建一个虚拟网桥,并在这些网桥之间搭建GRE隧道,使得它们之间能直接互通,并使用iptables做NAT映射,使得Linux容器收发的网络包能经由宿主机的网卡进行传递,使得Linux容器能与外部网络通信。
图3为本发明创建和访问一个容器集群的流程图。当用户点击网页上的创建集群按钮时,一个创建请求的URL被发送到Master节点上,Master会使用伙伴算法(如图4、图5所示)为该集群分配一个子网,随后从该子网的IP地址段中随机选择一个IP地址分配给第一个Linux容器,同时为该集群分配一个VLAN ID。然后Master会选择一个Worker节点,将创建Linux容器的请求发送给它。Worker节点收到请求后,会根据容器被分配到的IP地址和构建出来的虚拟网桥信息,以及用户创建时填写的参数生成配置文件,然后调用Linux容器的命令,以该配置文件为基础创建Linux容器。然后在宿主机网桥上对连接该IP地址的端口标记上该集群的VLAN ID。然后在该Linux容器内以用户和集群的信息为参数,启动Jupyter,并设置Jupyter访问的认证URL。在Worker的工作处理完成后,Master会将该容器的Jupyter运行端口与一个指定格式的URL绑定,这个URL对每个集群是唯一的且互不相同,该过程通过调用configure-http-proxy的API实现。在此之后,所有对该URL的访问都会定向到该容器的Jupyter的运行端口上。用户可以通过点击网页上的访问集群按钮对该集群的Jupyter页面进行访问,此时会将存储于浏览器cookie上的用户信息作为参数一并传递过去,该按钮会访问前面提到的指定URL,这个请求会被发送到Jupyter实例上,随后Jupyter会调用认证URL,认证URL会被发送到Master节点上,由Master节点对用户信息进行认证,认证成功,则会进入对应的Jupyter页面。
当用户点击网页上的扩张集群按钮时,Master会从该集群的子网中随机选择一个IP地址分配出来(如图4所示),然后选择一个Worker节点,将创建Linux容器的请求发送给它,Worker节点收到请求,会根据容器被分配到的IP地址和虚拟网桥信息,以及用户创建时填写的参数生成配置文件,然后调用Linux容器的命令,以该配置文件为基础创建Linux容器。然后在宿主机网桥上对连接该IP地址的端口标记上该集群的VLAN ID。然后在该集群原有 的其它Linux容器和这个新建的Linux容器之间分别做ssh的免认证登陆,并更新host文件的信息。
当用户点击网页上的收缩集群按钮时,Master会根据要被删除的Linux容器的信息找到其所在的Worker节点,然后对Worker节点发送删除请求,对应的Worker节点会调用命令删除该Linux容器,在这之后,Master会把被删除的容器的IP地址释放到待分配地址池中,如图5所示。
当用户点击网页上的删除集群按钮时,Master会读取该集群内所有Linux容器所在的Worker节点位置,分别对这些Worker节点发送删除请求,在所有Linux容器都被删除之后,Master会释放该集群被分配的子网的IP地址区间。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (10)

  1. 一种多用户环境下利用浏览器访问Linux容器集群的方法,其特征在于,包括以下步骤:
    1)在Linux容器集群上部署Master节点和若干Worker节点,其中Master节点用于进行集中管理,Worker节点是Linux容器的载体;
    2)在创建Linux容器集群时,Master节点为Linux容器集群分配一个子网,并从该子网内部为Linux容器分配IP地址;
    3)Master节点处理用户的创建Linux容器集群的请求,并将其分发到Worker节点,由Worker节点创建Linux容器;
    4)对创建的Linux容器进行Jupyter相关参数的配置,并通过http代理将对Linux容器集群访问的URL绑定到Linux容器的Jupyter运行端口上;
    5)当用户访问Linux容器集群时,由Master节点对用户信息进行认证,认证成功则进入对应的Jupyter页面,从而实现对Linux容器集群的访问。
  2. 如权利要求1所述的方法,其特征在于:在Linux容器所在的宿主机上构建虚拟网桥,并在各虚拟网桥之间搭建GRE隧道,使得分布于不同宿主机上的Linux容器之间能互相连通,并利用iptables做NAT映射使得Linux容器能与外部网络通信。
  3. 如权利要求2所述的方法,其特征在于:在创建Linux容器集群时,用户点击网页上的创建Linux容器集群按钮,选择相关参数之后,创建请求的URL被发送到Master节点上;Worker节点从Master节点收到创建Linux容器的请求后,根据Linux容器被分配到的IP地址和构建出来的虚拟网桥信息,以及用户填写的参数生成配置文件,然后调用Linux容器的命令,以该配置文件为基础创建Linux容器。
  4. 如权利要求2所述的方法,其特征在于:步骤2)中Master节点使用伙伴算法为Linux容器集群分配一个子网,随后从该子网的IP地址段中随机选择IP地址并分配给Linux容器。
  5. 如权利要求4所述的方法,其特征在于:步骤2)中Master节点为Linux容器集群分配一个VLAN ID;步骤3)中创建Linux容器后,在宿主机网桥上对连接该IP地址的端口标记上该Linux容器集群的VLAN ID;使用VLAN技术防止Linux容器数量过多时造成的广播风暴。
  6. 如权利要求1所述的方法,其特征在于:对同一个Linux容器集群内的Linux容器之间进行host信息登记,并进行互相之间的ssh免认证登陆,使用户能够免认证地登陆进集群内的各Linux容器内,从而开发和部署分布式应用。
  7. 如权利要求1所述的方法,其特征在于:通过浏览器的cookie存储用户信息,当用户访 问Linux容器集群时,将存储于浏览器cookie中的用户信息发送到Master节点,由Master节点对用户信息进行认证,认证成功则进入对应的Jupyter页面,从而实现对Linux容器集群的访问。
  8. 如权利要求1所述的方法,其特征在于:通过点击网页上的对应按钮,新建Linux容器,并将其与原先的Linux容器集群通过网络进行连接,从而实现对已存在的Linux容器集群进行扩张;通过点击网页上的对应按钮,删除一个Linux容器集群内的某个Linux容器,从而实现对已存在的Linux容器集群进行收缩。
  9. 一种多用户环境下利用浏览器访问Linux容器集群的装置,其特征在于,包括部署在Linux容器集群上的Master节点、若干Worker节点和http代理工具;所述Master节点用于进行集中管理,处理用户的创建Linux容器集群的请求,并将其分发到Worker节点;所述Worker节点是Linux容器的载体,用于处理Master发来的对Linux容器的操作请求;在创建Linux容器集群时,Master节点为Linux容器集群分配一个子网,并从该子网内部为Linux容器分配IP地址;所述http代理工具用于将对Linux容器集群访问的URL绑定到Linux容器的Jupyter运行端口上,以实现用户对Linux容器集群的访问。
  10. 如权利要求9所述的装置,其特征在于:在Linux容器所在的宿主机上构建虚拟网桥,并在各虚拟网桥之间搭建GRE隧道,使得分布于不同宿主机上的Linux容器之间能互相连通,并利用iptables做NAT映射使得Linux容器能与外部网络通信。
PCT/CN2017/110405 2016-12-21 2017-11-10 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 Ceased WO2018113443A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611191853.3A CN106844000B (zh) 2016-12-21 2016-12-21 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置
CN201611191853.3 2016-12-21

Publications (1)

Publication Number Publication Date
WO2018113443A1 true WO2018113443A1 (zh) 2018-06-28

Family

ID=59135064

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/110405 Ceased WO2018113443A1 (zh) 2016-12-21 2017-11-10 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置

Country Status (2)

Country Link
CN (1) CN106844000B (zh)
WO (1) WO2018113443A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109462511A (zh) * 2018-12-11 2019-03-12 中科曙光国际信息产业有限公司 网络的建立方法及装置
CN109885316A (zh) * 2019-02-18 2019-06-14 国家计算机网络与信息安全管理中心 基于kubernetes的hdfs-hbase部署方法及装置
CN111240683A (zh) * 2018-11-29 2020-06-05 熠智网络科技(上海)有限公司 一种嵌入式热编程方法及系统
CN111522628A (zh) * 2020-04-27 2020-08-11 上海仪电(集团)有限公司中央研究院 一种基于OpenStack的Kubernetes集群搭建部署方法、架构及存储介质
CN112003728A (zh) * 2020-07-24 2020-11-27 苏州浪潮智能科技有限公司 一种基于Kubernetes集群的应用主备实现方法及装置
CN112463298A (zh) * 2020-11-26 2021-03-09 浪潮云信息技术股份公司 一种跨命名空间检测容器可用性的方法
CN112882792A (zh) * 2021-02-03 2021-06-01 天津五八到家货运服务有限公司 信息加载方法、计算机设备及存储介质
CN114296863A (zh) * 2021-11-08 2022-04-08 北京思特奇信息技术股份有限公司 一种优化Jupyter开发环境启动速度的方法及系统、电子设备、存储介质
CN114327846A (zh) * 2020-09-30 2022-04-12 腾讯科技(深圳)有限公司 集群的扩容方法、装置、电子设备及计算机可读存储介质
CN114745385A (zh) * 2022-04-12 2022-07-12 吉林大学 一种构建slurm调度并行计算集群的方法
CN115543848A (zh) * 2022-11-01 2022-12-30 江苏苏宁银行股份有限公司 一种多容器环境代码覆盖率测试系统及其测试方法
CN118445223A (zh) * 2024-05-06 2024-08-06 深圳市机密计算科技有限公司 一种跨总线域的设备虚拟方法、系统、终端及存储介质

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844000B (zh) * 2016-12-21 2020-11-20 北京大学 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置
CN107395642B (zh) * 2017-08-31 2020-03-06 郑州云海信息技术有限公司 基于Websocket访问启动TLS认证的Docker容器的方法及系统
CN109587281B (zh) * 2017-09-29 2020-07-28 华为技术有限公司 容器配置方法和计算节点
CN108259611A (zh) * 2018-01-22 2018-07-06 郑州云海信息技术有限公司 集群docker管理方法、装置、系统及可读存储介质
CN108810080A (zh) * 2018-04-24 2018-11-13 山东大学 一种基于Docker Swarm容器集群的网络负载均衡系统及其搭建方法与工作方法
CN108718333A (zh) * 2018-05-09 2018-10-30 北京顺丰同城科技有限公司 同步方法、装置及计算机可读存储介质
CN108737559A (zh) * 2018-05-30 2018-11-02 郑州云海信息技术有限公司 目标系统的远程登录方法、系统、设备及可读存储介质
CN109471621B (zh) * 2018-09-26 2021-11-30 西安电子科技大学工程技术研究院有限公司 一种基于大数据的Linux系统下的工具构建方法
CN109302314B (zh) * 2018-09-28 2022-04-29 深信服科技股份有限公司 一种被控节点模拟方法及相关装置
CN109871258A (zh) * 2019-01-17 2019-06-11 珠海金山网络游戏科技有限公司 基于分布式容器的修改主机配置的方法及装置
CN110162381B (zh) * 2019-04-04 2021-07-13 北京升鑫网络科技有限公司 一种容器内代理执行方法
CN110932907B (zh) * 2019-12-03 2020-10-16 北京大学 一种Linux容器网络配置方法及网络系统
CN111491040B (zh) * 2020-04-09 2023-03-24 北京城市网邻信息技术有限公司 一种ip分配方法以及ip分配装置
CN112256399B (zh) * 2020-10-28 2022-08-19 四川长虹电器股份有限公司 基于Docker的Jupyter Lab多用户远程开发方法及系统
CN112698914B (zh) * 2020-12-30 2022-12-27 北京理工大学 一种工作流任务容器生成系统及方法
CN113259503B (zh) * 2021-06-24 2021-10-08 浩鲸云计算科技股份有限公司 基于Infiniband实现不同容器之间的跨网络通信方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699430A (zh) * 2014-01-06 2014-04-02 山东大学 基于j2ee架构的远程kvm虚拟机管理系统的工作方法
CN103986608A (zh) * 2014-05-29 2014-08-13 浪潮电子信息产业股份有限公司 一种基于安腾Linux应用容器的J2EE应用虚拟化管理方法
US20150256481A1 (en) * 2014-03-06 2015-09-10 Jisto Inc. Elastic Compute Cloud Based On Underutilized Server Resources Using A Distributed Container System
CN105808320A (zh) * 2016-03-11 2016-07-27 四川安嵌科技有限公司 基于Linux容器的设备虚拟化系统及方法
CN106844000A (zh) * 2016-12-21 2017-06-13 北京大学 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103167034B (zh) * 2013-03-13 2015-11-18 河海大学 基于CloudStack虚拟节点的监控Agent的构建方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699430A (zh) * 2014-01-06 2014-04-02 山东大学 基于j2ee架构的远程kvm虚拟机管理系统的工作方法
US20150256481A1 (en) * 2014-03-06 2015-09-10 Jisto Inc. Elastic Compute Cloud Based On Underutilized Server Resources Using A Distributed Container System
CN103986608A (zh) * 2014-05-29 2014-08-13 浪潮电子信息产业股份有限公司 一种基于安腾Linux应用容器的J2EE应用虚拟化管理方法
CN105808320A (zh) * 2016-03-11 2016-07-27 四川安嵌科技有限公司 基于Linux容器的设备虚拟化系统及方法
CN106844000A (zh) * 2016-12-21 2017-06-13 北京大学 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240683A (zh) * 2018-11-29 2020-06-05 熠智网络科技(上海)有限公司 一种嵌入式热编程方法及系统
CN109462511A (zh) * 2018-12-11 2019-03-12 中科曙光国际信息产业有限公司 网络的建立方法及装置
CN109885316B (zh) * 2019-02-18 2023-05-09 国家计算机网络与信息安全管理中心 基于kubernetes的hdfs-hbase部署方法及装置
CN109885316A (zh) * 2019-02-18 2019-06-14 国家计算机网络与信息安全管理中心 基于kubernetes的hdfs-hbase部署方法及装置
CN111522628A (zh) * 2020-04-27 2020-08-11 上海仪电(集团)有限公司中央研究院 一种基于OpenStack的Kubernetes集群搭建部署方法、架构及存储介质
CN111522628B (zh) * 2020-04-27 2024-04-09 上海仪电(集团)有限公司中央研究院 一种基于OpenStack的Kubernetes集群搭建部署方法、架构及存储介质
CN112003728A (zh) * 2020-07-24 2020-11-27 苏州浪潮智能科技有限公司 一种基于Kubernetes集群的应用主备实现方法及装置
CN112003728B (zh) * 2020-07-24 2022-07-19 苏州浪潮智能科技有限公司 一种基于Kubernetes集群的应用主备实现方法及装置
CN114327846A (zh) * 2020-09-30 2022-04-12 腾讯科技(深圳)有限公司 集群的扩容方法、装置、电子设备及计算机可读存储介质
CN112463298A (zh) * 2020-11-26 2021-03-09 浪潮云信息技术股份公司 一种跨命名空间检测容器可用性的方法
CN112882792A (zh) * 2021-02-03 2021-06-01 天津五八到家货运服务有限公司 信息加载方法、计算机设备及存储介质
CN114296863A (zh) * 2021-11-08 2022-04-08 北京思特奇信息技术股份有限公司 一种优化Jupyter开发环境启动速度的方法及系统、电子设备、存储介质
CN114745385A (zh) * 2022-04-12 2022-07-12 吉林大学 一种构建slurm调度并行计算集群的方法
CN114745385B (zh) * 2022-04-12 2023-05-30 吉林大学 一种构建slurm调度并行计算集群的方法
CN115543848A (zh) * 2022-11-01 2022-12-30 江苏苏宁银行股份有限公司 一种多容器环境代码覆盖率测试系统及其测试方法
CN118445223A (zh) * 2024-05-06 2024-08-06 深圳市机密计算科技有限公司 一种跨总线域的设备虚拟方法、系统、终端及存储介质

Also Published As

Publication number Publication date
CN106844000A (zh) 2017-06-13
CN106844000B (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
CN106844000B (zh) 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置
US20240095739A1 (en) Identity management for virtual private label clouds
CN111371579B (zh) 云平台部署方法、装置、服务器及存储介质
CN108737468B (zh) 云平台服务集群、构建方法及装置
US11765244B1 (en) Latency-based service discovery and routing for multi-location service-oriented applications
US9628328B2 (en) Network controller with integrated resource management capability
US11159344B1 (en) Connectivity of cloud edge locations to communications service provider networks
CN104468574B (zh) 一种虚拟机动态获取ip地址的方法、系统及装置
CN109254831B (zh) 基于云管理平台的虚拟机网络安全管理方法
CN114942826B (zh) 跨网络多集群系统及其访问方法及云计算设备
CN107580083A (zh) 一种容器ip地址分配的方法和系统
WO2018137369A1 (zh) 混合云管理方法、装置和计算设备
JP2019528005A (ja) クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法、装置、およびシステム
WO2017157156A1 (zh) 一种用户请求的处理方法和装置
CN106663034A (zh) 基于企业的网络与多租户网络之间的应用程序迁移
CN106411857A (zh) 一种基于虚拟隔离机制的私有云gis服务访问控制方法
CN108924268A (zh) 一种容器云服务系统及pod创建方法、装置
US10938619B2 (en) Allocation of virtual interfaces to containers
CN116132542B (zh) 容器网络管理方法、容器网络插件以及相关设备
CN105610675A (zh) 一种虚拟vpn网关的创建方法及装置
CN103581325B (zh) 一种云计算资源池系统及其实现方法
CN109445912A (zh) 一种虚拟机的配置方法、配置系统及sdn控制器
CN117978406B (zh) 一种异构多容器集群调度方法、系统、设备及存储介质
CN101650670A (zh) 可共享应用程序配置参数的电子系统及其方法
CN104506368A (zh) 一种统一管理交换机设备的方法和设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17882669

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17882669

Country of ref document: EP

Kind code of ref document: A1