麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種多用戶環境下利用瀏覽器訪問Linux容器集群的方法和裝置與流程

文檔序號:12664797閱讀:721來源:國知局
本發明是一種多用戶環境下利用瀏覽器訪問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(GenericRoutingEncapsulation,通用路由封裝)隧道,使得分布于不同宿主機上的Linux容器之間能互相連通,并利用iptables(Linux內核集成的IP信息包過濾系統)做NAT(NetworkAddressTranslation,網絡地址轉換)映射使得Linux容器能與外部網絡通信。進一步地,Master節點使用伙伴算法為Linux容器集群分配一個子網,隨后從該子網的IP地址段中隨機選擇IP地址并分配給Linux容器。進一步地,使用VLAN(VirtualLocalAreaNetwork,虛擬局域網)技術防止Linux容器數量過多時造成的廣播風暴。進一步地,對同一個Linux容器集群內的Linux容器之間進行host(主機)信息登記,并進行互相之間的ssh(SecureShell,安全外殼協議)免認證登陸。進一步地,通過瀏覽器的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是本裝置的網絡結構圖。本裝置使用openvSwitch工具在每個宿主機上構建一個虛擬網橋,并在這些網橋之間搭建GRE隧道,使得它們之間能直接互通,并使用iptables做NAT映射,使得Linux容器收發的網絡包能經由宿主機的網卡進行傳遞,使得Linux容器能與外部網絡通信。圖3為本發明創建和訪問一個容器集群的流程圖。當用戶點擊網頁上的創建集群按鈕時,一個創建請求的URL被發送到Master節點上,Master會使用伙伴算法(如圖4、圖5所示)為該集群分配一個子網,隨后從該子網的IP地址段中隨機選擇一個IP地址分配給第一個Linux容器,同時為該集群分配一個VLANID。然后Master會選擇一個Worker節點,將創建Linux容器的請求發送給它。Worker節點收到請求后,會根據容器被分配到的IP地址和構建出來的虛擬網橋信息,以及用戶創建時填寫的參數生成配置文件,然后調用Linux容器的命令,以該配置文件為基礎創建Linux容器。然后在宿主機網橋上對連接該IP地址的端口標記上該集群的VLANID。然后在該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地址的端口標記上該集群的VLANID。然后在該集群原有的其它Linux容器和這個新建的Linux容器之間分別做ssh的免認證登陸,并更新host文件的信息。當用戶點擊網頁上的收縮集群按鈕時,Master會根據要被刪除的Linux容器的信息找到其所在的Worker節點,然后對Worker節點發送刪除請求,對應的Worker節點會調用命令刪除該Linux容器,在這之后,Master會把被刪除的容器的IP地址釋放到待分配地址池中,如圖5所示。當用戶點擊網頁上的刪除集群按鈕時,Master會讀取該集群內所有Linux容器所在的Worker節點位置,分別對這些Worker節點發送刪除請求,在所有Linux容器都被刪除之后,Master會釋放該集群被分配的子網的IP地址區間。以上實施例僅用以說明本發明的技術方案而非對其進行限制,本領域的普通技術人員可以對本發明的技術方案進行修改或者等同替換,而不脫離本發明的精神和范圍,本發明的保護范圍應以權利要求書所述為準。當前第1頁1 2 3 當前第1頁1 2 3 
當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 通道| 昌平区| 凯里市| 万全县| 晋州市| 阿克| 台东县| 浪卡子县| 元江| 桐乡市| 曲阜市| 济宁市| 星座| 镇远县| 沿河| 金沙县| 绥滨县| 祁连县| 利津县| 彩票| 佛山市| 临汾市| 化州市| 肇东市| 措勤县| 敦化市| 兴仁县| 绥阳县| 呼和浩特市| 黄冈市| 长武县| 沈阳市| 宜丰县| 屯昌县| 奇台县| 临西县| 苍山县| 平南县| 澄城县| 武冈市| 六枝特区|