国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于云原生環(huán)境的云存儲在線應(yīng)用系統(tǒng)

2020-04-23 11:17:16鄒理賢
電子技術(shù)與軟件工程 2020年8期
關(guān)鍵詞:副本容器集群

鄒理賢

(云宏信息科技股份有限公司 廣東省廣州市 510650)

過去幾十年來,IT 機構(gòu)的發(fā)展經(jīng)歷了單機架構(gòu)、分布式架構(gòu)和云計算架構(gòu)的過程[1]。當前,國內(nèi)外基于服務(wù)器虛擬化的云計算平臺發(fā)展已經(jīng)較為成熟,很多企業(yè)應(yīng)用已經(jīng)遷移到了云端。這些應(yīng)用大部分基于傳統(tǒng)的設(shè)計方法,并沒有充分利用和發(fā)揮云的特點。近年來,云原生[2]的理念應(yīng)運而生,主要特點是為云而生,充分利用云的彈性及分布式優(yōu)勢。云原生涵蓋了容器、微服務(wù)、服務(wù)網(wǎng)格等技術(shù)[3]。隨著 Docker 的出現(xiàn)與流行,基于容器的云計算平臺逐漸火熱,而現(xiàn)階段 Docker 使用大多集中于操作系統(tǒng)虛擬化,基于 Docker 容器環(huán)境的云存儲在線應(yīng)用系統(tǒng)較少,雖然 Docker Hub 中提供了多種數(shù)據(jù)庫的開源 Docker 鏡像,但是目前鮮有企業(yè)級應(yīng)用。

本文針對上述問題,主要研究如下幾個內(nèi)容:

(1)研究容器技術(shù),形成搭建支撐云存儲在線應(yīng)用的基礎(chǔ)架構(gòu)平臺;

(2)研究與實現(xiàn)云存儲在線應(yīng)用系統(tǒng)及其相關(guān)聯(lián)服務(wù)微服務(wù)化,實現(xiàn)平臺應(yīng)用服務(wù)組件的模塊化,使管理者可通過 UI 界面控制容器引擎,完成應(yīng)用服務(wù)的自動化部署和運維;

(3)在此基礎(chǔ)上進行分布式云存儲在線應(yīng)用系統(tǒng)的服務(wù)內(nèi)容設(shè)計。

1 容器編排調(diào)度技術(shù)研究

容器運行于多個計算節(jié)點上,共同組成一個應(yīng)用的微服務(wù)架構(gòu)。容器編排技術(shù)為容器化的應(yīng)用提供資源調(diào)度、部署運行以及服務(wù)的發(fā)現(xiàn)、擴容、縮容等一整套功能。

容器編排為高可用容器集群管理軟件架構(gòu)。集群中的機器被劃分為一個(或多個)管理節(jié)點和一群計算節(jié)點(Node),其中管理節(jié)點上運行著集群管理相關(guān)的一組進程API 服務(wù)、多種控制管理器、調(diào)度器和分布式數(shù)據(jù)庫四個組件,其中前三個組件構(gòu)成了集群的總控中心,負責對集群中所有資源進行管控和調(diào)度。在每個計算節(jié)點上運行工作者、服務(wù)訪問代理和容器代理三個組件,負責對本節(jié)點的容器的生命周期進行管理,以及實現(xiàn)服務(wù)代理的功能。另外,在所有節(jié)點皆可運行編排的命令行工具,提供集群管理工具集。

每個編排計算節(jié)點上運行一個編排的工作者,其監(jiān)聽管理節(jié)點的api 資源,通過監(jiān)聽到本節(jié)點的任務(wù)來編排本節(jié)點上的容器。當一個容器部署到本節(jié)點上時,節(jié)點訪問代理就設(shè)置對應(yīng)的訪問規(guī)則來設(shè)定集群的訪問能力,如網(wǎng)絡(luò)端口,路由策略等。每個節(jié)點上都有個虛擬網(wǎng)絡(luò)節(jié)點,其互相通信,通過加密虛擬網(wǎng)絡(luò)包的方式實現(xiàn)集群內(nèi)節(jié)點的安全通訊。

1.1 集群主要功能

1.1.1 資源調(diào)度

集群中的調(diào)度器,負責容器在集群節(jié)點中的調(diào)度分配。接收控制管理器創(chuàng)建的新容器,為其安排一個目標計算節(jié)點,目標節(jié)點上的工作者服務(wù)進程接管后續(xù)工作負責容器整個生命周期。

編排器的作用是將帶調(diào)度的容器按照特定的調(diào)度算法和調(diào)度策略綁定到集群中的某個計算節(jié)點上,并將綁定信息寫入數(shù)據(jù)庫中。在整個調(diào)度過程中涉及三個對象,分別是:待調(diào)度容器列表、可用計算節(jié)點列表,以及調(diào)度算法和策略。

調(diào)度器默認的調(diào)度流程分為以下兩步。

(1)預(yù)選調(diào)度過程,即遍歷所有目標計算節(jié)點,篩選出符合要求的候選節(jié)點。編排器內(nèi)置了多種預(yù)選策略。

(2)確定最優(yōu)節(jié)點,采用優(yōu)先策略計算出每個候選節(jié)點的積分,積分高者勝出。

調(diào)度策略支持支持基于容器名稱和服務(wù)名稱的容器調(diào)度設(shè)置,可以指定容器運行的主機,支持主機親和性/反親和性調(diào)度,支持容器親和性/反親和性調(diào)度。

1.1.2 服務(wù)發(fā)現(xiàn)

編排集群內(nèi)部包含服務(wù)發(fā)現(xiàn)控制器,負責服務(wù)的創(chuàng)建、注冊、監(jiān)控、發(fā)現(xiàn)以及容器與服務(wù)之間的通訊。服務(wù)是一個定義容器集合的抽象,或則被訪問者看作一個訪問策略,有時也被稱作微服務(wù)。服務(wù)是一種資源對象與容器相似。可以同過API 服務(wù)的POST 接口創(chuàng)建一個新的實例。

集群服務(wù)實現(xiàn)上主要通過集群內(nèi)部的域名解析DNS 來實現(xiàn),DNS 服務(wù)器通過API 服務(wù)監(jiān)控與服務(wù)相關(guān)活動。當監(jiān)控到服務(wù)創(chuàng)建時,DNS 服務(wù)器為每個Service 創(chuàng)建以一系列DNS 記錄,通過DNS 來查找服務(wù),NDS 返回的結(jié)果是集群IP(虛擬IP、集群IP)。

集群內(nèi)的容器就可以通過對應(yīng)的服務(wù)來解析出對應(yīng)的IP,最終來實現(xiàn)集群內(nèi)的容器服務(wù)發(fā)現(xiàn)通訊。

1.1.3 彈性伸縮

集群內(nèi)部包含副本控制器,其核心作用是確保在任何時候集群中一個副本資源所關(guān)聯(lián)的容器都保持一定數(shù)量的容器副本處于正常運行狀態(tài)。如果該類容器副本數(shù)量太多,則副本控制器會銷毀一些容器副本,反之副本控制器會添加容器副本,直到該類容器的副本數(shù)量達到預(yù)設(shè)的副本數(shù)量,實現(xiàn)自動創(chuàng)建、補足、替換、刪除容器副本。

副本控制器常用的實用模式:

(1)重新調(diào)度。不管你想運行1 個副本還是1000 個副本,副本控制器都能確保指定數(shù)量的副本存在于集群中,即使發(fā)生節(jié)點故障或容器副本被終止運行等意外狀況。

(2)彈性伸縮。手動或者通過自動擴容代理修改副本控制器的副本期望屬性值,可實現(xiàn)擴大或縮小的副本數(shù)量。

圖1:基于容器環(huán)境的基礎(chǔ)架構(gòu)設(shè)計

(3)滾動更新。副本控制器被設(shè)計成通過逐個替換容器的方式來輔助服務(wù)的滾動更新。推薦的方式是創(chuàng)建一個新的只有一個副本的資源,若新的資源副本數(shù)量加1,則舊的副本數(shù)量減1,直到這個舊的副本數(shù)量為零,然后刪除該舊的容器。

1.1.4 編排服務(wù)

編排是集群內(nèi)部的管理控制中心內(nèi),負責集群內(nèi)的計算節(jié)點、容器副本、服務(wù)端點、命名空間、服務(wù)賬號、資源定額等的管理并執(zhí)行自動化修復流程,確保集群處于預(yù)期的工作狀態(tài)。

其通過一個統(tǒng)一的編排服務(wù)接口,提供各個編排資源的提交及注冊,其分為用戶期望及編排狀態(tài)兩部分。當用戶保存對應(yīng)的信息后,編排控制器把對應(yīng)的任務(wù)下發(fā)到各個對應(yīng)的控制管理器上,讓其編排調(diào)度。

1.1.5 健康檢查

監(jiān)控檢測為資源的正常服務(wù)狀態(tài)的檢查,其分為準備態(tài)和健康態(tài)。準備態(tài)為容器服務(wù)從無到有準備完成可以提供正常服務(wù)了。健康態(tài)為容器服務(wù)運行很長時間后,編排引擎通過它來檢測對應(yīng)服務(wù)是否正常運行。

用戶可以設(shè)置不用的規(guī)則,讓監(jiān)控檢查來檢測對應(yīng)的服務(wù),如端口是否打開,api 請求是否正常等。

1.1.6 生命周期管理

編排對容器的生命周期管理主要指其通過資源在集群內(nèi)的狀態(tài)其實現(xiàn)其副本數(shù),對應(yīng)節(jié)點存活遷移等。其主要通過各個節(jié)點的編排工作者來實現(xiàn)對應(yīng)的生命周期管理。

編排工作者通過觀察控制器對應(yīng)的api 接口,然后通過容器調(diào)度標準接口來控制本節(jié)點的容器。其直接調(diào)用容器運行管理器器內(nèi)建編排插件,通過方法調(diào)用來進行交互,從而減少遠程的開銷。

1.1.7 負載均衡管理

通過設(shè)置容器的入口點規(guī)則,生成對應(yīng)負載均衡器的負載均衡規(guī)則。然后把動態(tài)生成的規(guī)則下發(fā)到各個節(jié)點的負載均衡器上。最終實現(xiàn)對集群內(nèi)部服務(wù)的負載均衡的訪問,實現(xiàn)高可用。

1.1.8 容器多集群管理

容器的多集群管理指的是集群通過集群命名空間的方式實現(xiàn)集群內(nèi)部的租戶環(huán)境劃分。每個命名空間內(nèi)包含多個容器服務(wù),并建立對應(yīng)的容器服務(wù)。各個命名空間件的容器服務(wù)不可互相訪問,只能通過命名空間的服務(wù)來訪問。以此實現(xiàn)通過命名空間對環(huán)境的隔離。

2 基于容器的基礎(chǔ)架構(gòu)平臺設(shè)計

以提升用戶的體驗和滿意度,提高云存儲系統(tǒng)質(zhì)量為目標,建設(shè)基于容器環(huán)境的云存儲在線應(yīng)用系統(tǒng),研究基于Docker 技術(shù)快速構(gòu)建容器基礎(chǔ)設(shè)施,構(gòu)建一套容器云平臺,解決容器的多種資源編排和調(diào)度統(tǒng)一管理問題,實現(xiàn)云存儲在線應(yīng)用系統(tǒng)的輕量級自動化部署與管理功能。容器云環(huán)境的基礎(chǔ)架構(gòu)如圖1 所示。

針對云存儲在線應(yīng)系統(tǒng)的建設(shè)要求,實現(xiàn)如下幾個關(guān)鍵功能:

(1)大規(guī)?;A(chǔ)設(shè)施管理,實現(xiàn)容器與現(xiàn)有IaaS 平臺融合和統(tǒng)一管理,實現(xiàn)大規(guī)模集群資源的自動化接入和管理,支持云存儲在線應(yīng)用系統(tǒng)的應(yīng)用服務(wù)及合作伙伴系統(tǒng)的IT 資源需求,支持一鍵式的應(yīng)用部署和應(yīng)用管理功能。

(2)資源編排和調(diào)度:研究容器的Kubernetes、Mesos、Swarm、Cattle 等多種業(yè)界主流編排引擎支持問題,滿足云存儲在線應(yīng)用生態(tài)圈建設(shè)的用戶對各種類型資源編排和調(diào)度需求。

(3)實現(xiàn)彈性擴容機制,以應(yīng)用為顆粒度進行動態(tài)的負載管理,配合持續(xù)部署規(guī)則,實現(xiàn)復雜場景下的應(yīng)用全自動彈性伸縮。

(4)支持云存儲在線應(yīng)用的按照預(yù)先配置的策略,完成應(yīng)用的自動化打包封裝和交付過程。

(5)持續(xù)部署技術(shù),支持云存儲在線應(yīng)用的按可通過全自動化的策略驅(qū)動,配合可定制的部署模板及調(diào)度策略,實現(xiàn)應(yīng)用的一鍵部署及自動運維。

(6)無狀態(tài)容器的分布式存儲后端設(shè)計。

容器鏡像是一種自包含格式,即包含云應(yīng)用及其所有依賴,運行容器時無需任何外部依賴,可以充分保證云應(yīng)用的遷移性。如果容器應(yīng)用需要持久保存數(shù)據(jù),即有狀態(tài)容器,如何保證數(shù)據(jù)的遷移性就成為一個迫切需要解決的問題。解決問題的思路是分別處理容器和數(shù)據(jù)的生命周期,在容器引擎或容器云層面實現(xiàn)持久存儲。

圖2:基于容器環(huán)境的微服務(wù)基礎(chǔ)架構(gòu)示意

圖3:云存儲在線應(yīng)用的功能架構(gòu)設(shè)計圖

第一種是基于單臺宿主機器的持久存儲解決方案,由該宿主機負責持久保存容器的數(shù)據(jù)。以Docker 容器引擎為例,運行容器時指定數(shù)據(jù)卷參數(shù),能把宿主機系統(tǒng)的文件系統(tǒng)映射到容器內(nèi)部文件系統(tǒng)。即使容器宕機,數(shù)據(jù)也仍然持久保存在當前宿主機上。當然,容器不再具備遷移性,因為數(shù)據(jù)仍然保留在宿主機器上。

第二種是基于多臺宿主機器的持久存儲解決方案。從Docker容器引擎1.8 版開始,提供了卷插件功能,確立容器引擎與存儲后端的標準接口和交互方式。容器云Kubernetes 提供持久卷功能,支持有狀態(tài)容器集合的運行。Apache Mesos 也提供類似的持久卷和共享持久卷功能。由此可見,主流容器云實現(xiàn)都提供支持有狀態(tài)容器的前端接口,問題的關(guān)鍵變成如何選擇合適的持久存儲后端。

為了運行有狀態(tài)容器,需要存儲后端提供存儲資源池。本項目擬研究一種由容器云統(tǒng)一管理的分布式存儲系統(tǒng),不僅支持物理節(jié)點、虛擬機節(jié)點和容器節(jié)點存儲的匯集和釋放,還同時提供了對象存儲、塊存儲和文件存儲接口,滿足部署和運行有狀態(tài)云原生應(yīng)用的需求。實現(xiàn)原理是首先實現(xiàn)swift 存儲系統(tǒng)的自動部署和運維,然后實現(xiàn)與容器持久存儲接口兼容的對象存儲、塊存儲和文件存儲。

3 基于容器的微服務(wù)架構(gòu)設(shè)計

基于Docker 容器環(huán)境,研究云存儲在線應(yīng)用系統(tǒng)架構(gòu)的微服務(wù)化,解決項目的微服務(wù)應(yīng)用,支撐PaaS 應(yīng)用的快速開發(fā)應(yīng)用,以及支持項目服務(wù)應(yīng)用的創(chuàng)新發(fā)展。究基于容器環(huán)境的服務(wù)基礎(chǔ)架構(gòu)如圖2 所示。

如圖2 所示:

(1)服務(wù)注冊中心微服務(wù)改造,解決項目的服務(wù)定位問題,以實現(xiàn)云端中間層服務(wù)發(fā)現(xiàn)和故障轉(zhuǎn)移。通過服務(wù)發(fā)現(xiàn)與注冊,實現(xiàn)只需要使用服務(wù)的標識符,便能訪問到服務(wù)。

(2)構(gòu)建統(tǒng)一配置中心,為各應(yīng)用的所有環(huán)境提供了一個中心化的外部配置。通過構(gòu)建統(tǒng)一配置中心,支持應(yīng)用服務(wù)可以通過部署管道來進行測試或者投入生產(chǎn);平臺可以分別為這些環(huán)境創(chuàng)建配置,并且在需要遷移環(huán)境的時候獲取對應(yīng)環(huán)境的配置來運行。

(3)服務(wù)網(wǎng)關(guān)是微服務(wù)架構(gòu)中一個不可或缺的部分。通過服務(wù)網(wǎng)關(guān)統(tǒng)一向外系統(tǒng)提供REST API 的過程中,除了具備服務(wù)路由、均衡負載功能之外,它還具備了權(quán)限控制等功能;通過將權(quán)限控制這些較重的非業(yè)務(wù)邏輯內(nèi)容遷移到服務(wù)路由層面,使得服務(wù)集群主體能夠具備更高的可復用性和可測試性。

4 分布式云存儲在線應(yīng)用系統(tǒng)設(shè)計

云存儲在線應(yīng)用系統(tǒng)以分布式存儲技術(shù)來構(gòu)建存儲層,并在云存儲架構(gòu)的基礎(chǔ)上,研發(fā)文件管理、工作空間、信息交流等服務(wù)體系。

云存儲在線應(yīng)用服務(wù)內(nèi)容設(shè)計如圖3 所示。

(1)結(jié)合容器技術(shù)的特點研發(fā)項目云存儲在線應(yīng)用與開發(fā)的應(yīng)用中心,支持合作伙伴在平臺的應(yīng)用開發(fā)和快速部署;通過多應(yīng)用服務(wù)接入,共同營造云存儲在線應(yīng)用的服務(wù)生態(tài)圈。支持包括iPhone、Android、PC 和Web 等多平臺訪問,用戶可以隨時隨地享受本項目帶來的移動互聯(lián)信息服務(wù),輕松實現(xiàn)移動辦公。

(2)基于容器環(huán)境的云存儲在線應(yīng)用系統(tǒng)核心模塊設(shè)計,該系統(tǒng)采用分層概念設(shè)計,將應(yīng)用和核心模塊分離,逐步打造云存儲的PaaS 平臺和針對各行業(yè)的垂直SaaS 服務(wù)。核心模塊研究的關(guān)鍵技術(shù)如下:系統(tǒng)采用模塊化設(shè)計,同時將接口以HTTP REST API 的方式開放,支持多種方式接入;對用戶數(shù)據(jù)和文件采用分布式存儲,保證用戶資料的安全,確保每個數(shù)據(jù)都有多個備份;提供日志管理功能,包括日志記錄,及報表分析和用戶行為數(shù)據(jù)挖掘;研究對象緩存技術(shù),幫助用戶將常用的數(shù)據(jù)和對象裝載到內(nèi)存數(shù)據(jù)庫中,保證數(shù)據(jù)的快速訪問;研究數(shù)據(jù)安全技術(shù),通過訪問控制、備份策略、加密技術(shù)、認證等方式保證用戶數(shù)據(jù)的傳輸安全和存儲安全。

5 結(jié)束語

本系統(tǒng)基于云原生技術(shù),研究云存儲在線應(yīng)用系統(tǒng),解決了容器后端持久化存儲及開放API 的問題,滿足大規(guī)模云存儲在線應(yīng)用,實現(xiàn)信息存儲、分發(fā)、共享等功能。

猜你喜歡
副本容器集群
Different Containers不同的容器
難以置信的事情
海上小型無人機集群的反制裝備需求與應(yīng)對之策研究
面向流媒體基于蟻群的副本選擇算法①
一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
電子制作(2018年11期)2018-08-04 03:25:40
Python與Spark集群在收費數(shù)據(jù)分析中的應(yīng)用
勤快又呆萌的集群機器人
副本放置中的更新策略及算法*
取米
樹形網(wǎng)絡(luò)中的副本更新策略及算法*
阿合奇县| 三穗县| 信阳市| 汉川市| 兰考县| 宝应县| 博野县| 织金县| 西充县| 响水县| 阿勒泰市| 北流市| 龙州县| 仁化县| 财经| 宜春市| 楚雄市| 历史| 新民市| 湖南省| 团风县| 桃源县| 阿克陶县| 大同市| 新营市| 视频| 石柱| 福贡县| 隆安县| 开封县| 本溪市| 于田县| 兴海县| 高陵县| 东兴市| 长子县| 西畴县| 赤壁市| 白水县| 南郑县| 前郭尔|