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

?

基于國產(chǎn)云基座的私有化容器云平臺構(gòu)建研究

2023-10-11 15:21:38蘇奕豪
關(guān)鍵詞:私有化鏡像容器

蘇奕豪

(中國鐵路蘭州局集團(tuán)有限公司 科技和信息化部,蘭州 730000)

隨著云計(jì)算技術(shù)的發(fā)展,云平臺已經(jīng)成為企業(yè)信息基礎(chǔ)設(shè)施的重要組成部分。云計(jì)算發(fā)展初期,以基礎(chǔ)設(shè)施即服務(wù)(IaaS,Infrastructure as a Service)模式為主的虛擬化技術(shù)有效解決了硬件層的資源共享與資源隔離等問題,但其承載應(yīng)用的虛擬機(jī)操作系統(tǒng)占用了較多的宿主機(jī)硬件資源,增加了系統(tǒng)及應(yīng)用的運(yùn)營維護(hù)(簡稱:運(yùn)維)、管理復(fù)雜度。

近年來,容器云平臺憑借其輕量化、高可用、遷移便利、彈性計(jì)算等優(yōu)勢逐步成為助力企業(yè)發(fā)展及數(shù)字化變革的新興技術(shù)。翁湦元等人[1]提出可將原業(yè)務(wù)系統(tǒng)進(jìn)行容器化改造后遷移至云平臺,以達(dá)到提高平臺靈活性、穩(wěn)定性,降低運(yùn)維成本的目的;田源等人[2]為了解決乘客信息系統(tǒng)應(yīng)用軟件部署量大、部署效率低的問題,提出一種基于Docker 容器技術(shù)的軟件部署架構(gòu),為乘客信息系統(tǒng)的進(jìn)一步云化提供了技術(shù)支撐;許孟豪等人[3]闡述了云邊架構(gòu)下的應(yīng)用協(xié)同架構(gòu),研究了基于容器的應(yīng)用協(xié)同技術(shù);郝曉培等人[4]提出了基于Kubernetes 容器的平臺即服務(wù)(PaaS,Platform as a Service)平臺,將容器云技術(shù)與深度學(xué)習(xí)相結(jié)合,實(shí)現(xiàn)了平臺資源隔離及動態(tài)部署。基于以上研究,本文以國產(chǎn)Linux 操作系統(tǒng)為云基座,構(gòu)建私有化容器云平臺,為企業(yè)構(gòu)建標(biāo)準(zhǔn)化、規(guī)范化的信息基礎(chǔ)設(shè)施提供有力支撐。

1 私有化容器云平臺及其構(gòu)成

1.1 私有化容器云平臺簡介

容器云平臺是指基于容器化和容器編排技術(shù),結(jié)合云原生服務(wù)框架構(gòu)建的一種輕量級云平臺,其核心是在操作系統(tǒng)層面上實(shí)現(xiàn)對應(yīng)用程序運(yùn)行環(huán)境的隔離和封裝[5],為應(yīng)用提供開發(fā)、發(fā)布、編排、治理和運(yùn)維管理的全生命周期管理能力。容器化在資源利用率、遷移便利性等方面較傳統(tǒng)虛擬化技術(shù)有明顯的優(yōu)勢,如圖1 所示,傳統(tǒng)虛擬化層中的虛擬機(jī)管理程序和虛擬機(jī)操作系統(tǒng)都被Docker 容器層所取代,采用容器化的部署、運(yùn)行方式,進(jìn)一步提高了底層硬件的資源利用率。

圖1 虛擬化和容器化對比示意

私有化容器云平臺是基于企業(yè)內(nèi)部網(wǎng)絡(luò)構(gòu)建的與互聯(lián)網(wǎng)隔離的容器云平臺,僅服務(wù)于企業(yè)內(nèi)部信息系統(tǒng)和應(yīng)用,依托高速的內(nèi)部網(wǎng)絡(luò)和完善的邊界防護(hù)體系,具備更高的穩(wěn)定性、可用性和安全性。

1.2 私有化容器云平臺構(gòu)成

1.2.1 私有化容器云平臺基座

本文所討論的基座是指負(fù)載私有化容器云平臺運(yùn)行的服務(wù)器底層硬件和操作系統(tǒng),基座中的底層硬件為平臺提供計(jì)算能力、存儲能力和網(wǎng)絡(luò)鏈接,而平臺運(yùn)行所依賴的服務(wù)及組件則按照節(jié)點(diǎn)的屬性和類型按需部署在基座操作系統(tǒng)上。隨著國家提倡核心技術(shù)自主可控,為有效降低企業(yè)構(gòu)建信息基礎(chǔ)設(shè)施的成本,綜合考量實(shí)際應(yīng)用場景及穩(wěn)定性、兼容性等需求,本文選擇基于國產(chǎn)Linux 內(nèi)核的OpenEuler操作系統(tǒng)作為搭建私有化容器云平臺的云基座。

1.2.2 私有化容器云平臺鏡像倉庫

在容器云中,鏡像是用于創(chuàng)建容器的模板和基礎(chǔ),所有容器化應(yīng)用均基于鏡像啟動,因此需要搭建私有鏡像倉庫對鏡像資源進(jìn)行統(tǒng)一管理,以確保容器云平臺在構(gòu)建和運(yùn)行過程中所使用的各類鏡像資源安全可靠。本文采用企業(yè)級開源容器鏡像倉庫Harbor[6],滿足Docker 鏡像的存儲、分發(fā)及統(tǒng)一管理需求,提供圖形化管理界面、基于角色訪問控制、鏡像遠(yuǎn)程復(fù)制及日志審計(jì)等企業(yè)級鏡像管理功能。

2 私有化容器云平臺設(shè)計(jì)

私有化容器云平臺作為企業(yè)的核心信息基礎(chǔ)設(shè)施,對安全性和容災(zāi)能力均有極高的要求,因此,在堅(jiān)持高可用、易擴(kuò)展原則的同時(shí),須滿足多租戶在應(yīng)用研發(fā)、測試、運(yùn)維等方面的多樣化需求。基于此,本文采用Kubernetes 容器編排工具,設(shè)計(jì)并搭建私有化容器云平臺的集群環(huán)境,部署了10 臺計(jì)算節(jié)點(diǎn),包括3 臺Master 節(jié)點(diǎn)、4 臺Node 節(jié)點(diǎn)、2 臺Proxy 代理節(jié)點(diǎn)及1 臺負(fù)載Harbor 私有鏡像倉庫、Openssl(cfssl)證書簽發(fā)環(huán)境、離線Yum 倉庫和Yaml 資源配置倉庫的Private-store 節(jié)點(diǎn)。當(dāng)平臺運(yùn)算或存儲能力不足時(shí),僅增加Node 計(jì)算節(jié)點(diǎn)數(shù)量即可實(shí)現(xiàn)平臺的快速橫向擴(kuò)容。私有化容器云平臺總體架構(gòu)如圖2 所示。

2.1 Master 節(jié)點(diǎn)部署

Master 節(jié)點(diǎn)是Kubernetes 集群的管理核心,負(fù)責(zé)整個(gè)集群的管理,同時(shí)也是整個(gè)容器云平臺的控制中樞。云平臺在3 臺Master 節(jié)點(diǎn)上分別部署了etcd分布式鍵值數(shù)據(jù)庫及API Server、Controller manager、Scheduler 等核心組件[7]。

(1)Etcd 是一個(gè)分布式鍵值存儲系統(tǒng)(數(shù)據(jù)庫)[8],用于存儲集群配置信息和服務(wù)注冊信息[9]。為避免Etcd 出現(xiàn)單點(diǎn)故障,在測試環(huán)境中采用了集群方式部署,共安裝了3 臺Etcd 節(jié)點(diǎn)組建集群,最多可容忍2 臺Etcd 節(jié)點(diǎn)同時(shí)故障。

(2)API Server 提供了對集群中各類資源對象(如Pod、Deployment、Daemonset、Service、Ingress、Configmap 等)的增、刪、改、查操作,是整個(gè)集群的管理入口。

(3)Controller Manager(簡稱:CM)是集群內(nèi)部的管理控制中心,負(fù)責(zé)集群內(nèi)所有資源的動態(tài)管理[10],當(dāng)集群中某一臺Node 節(jié)點(diǎn)發(fā)生故障時(shí),CM會及時(shí)發(fā)現(xiàn)故障并啟動自動化修復(fù)流程,確保集群始終處于預(yù)期的工作狀態(tài)[11]。

(4)Scheduler 主要負(fù)責(zé)整個(gè)集群中的資源調(diào)度管理,它按照特定的算法及策略,將Pod(Kubernetes中最小的管理單元,一個(gè)Pod 可以封裝一個(gè)容器或多個(gè)容器[12])調(diào)度到最優(yōu)或最適合的Node 節(jié)點(diǎn)上,從而使集群內(nèi)的資源分配更加合理、資源利用更加充分。

2.2 Node 節(jié)點(diǎn)部署

Node 節(jié)點(diǎn)是集群中的工作節(jié)點(diǎn),提供了Pod 運(yùn)行的基礎(chǔ)環(huán)境,支撐著集群中運(yùn)行容器的全生命周期管理。云平臺在4 臺Node 節(jié)點(diǎn)上分別部署了Kubelet 組件、Kube-proxy 組件及Docker 引擎。

(1)Kubelet 組件的主要功能是定期從API Server 接收新的或變更的Pod 定義,確保Pod 及其容器在期望的狀態(tài)下運(yùn)行,并實(shí)時(shí)向API Server 報(bào)送采集到的相關(guān)信息。

(2)Kube-proxy 是Pod 的TCP/UDP 代理,負(fù)責(zé)轉(zhuǎn)發(fā)從Service 到后端多個(gè)Pod 實(shí)例的訪問流量,引入IPVS(IP Virtual Server)模式,實(shí)現(xiàn)了在Kubernetes集群中負(fù)載更小、擴(kuò)展性更高、性能更強(qiáng)的虛擬轉(zhuǎn)發(fā)網(wǎng)絡(luò)。

(3)Docker 引擎是支撐容器運(yùn)行的基礎(chǔ),主要包含Docker 客戶端(Docker Client)及Docker 守護(hù)進(jìn)程(Daemon、Containerd、Runc),各組件協(xié)同負(fù)責(zé)容器的創(chuàng)建和管理。

2.3 其他計(jì)算節(jié)點(diǎn)部署

(1)2 臺Proxy 節(jié)點(diǎn)作為平臺的入口,配置為高可用集群,分別部署DNS 和Nginx。其中,DNS負(fù)責(zé)解析Host 主機(jī)域和Kubernetes 服務(wù)域;Nginx提供反向代理。4 層反向代理指向3 臺API Server,實(shí)現(xiàn)集群核心組件的高可用;7 層反向代理用于向外暴露Kubernetes 內(nèi)部服務(wù)。

(2)1 臺Private-store 節(jié)點(diǎn)同時(shí)部署Harbor 私有鏡像倉庫、Openssl 及cfssl 證書簽發(fā)環(huán)境、離線Yum 倉庫和Yaml 資源配置倉庫。

2.4 集群核心組件部署

為構(gòu)建完善的容器云平臺管理及運(yùn)維體系,在部署集群規(guī)劃的節(jié)點(diǎn)和基礎(chǔ)組件的基礎(chǔ)上,還須安裝部分功能性組件,用于承擔(dān)域名解析、資源通信、服務(wù)發(fā)現(xiàn)、圖形化管理及監(jiān)控等任務(wù)。為確保組件具備高可用性,本文以容器化集群方式進(jìn)行部署。

( 1) 域名解析組件采用 CoreDNS 作為Kubernetes 集群的核心功能組件之一,主要承擔(dān)服務(wù)發(fā)現(xiàn)配置中心的職責(zé),負(fù)責(zé)對集群內(nèi)創(chuàng)建的Service和Pod 自動生成對應(yīng)的DNS 記錄。

(2)資源通信組件采用符合CNI(Container Network Interface)接口規(guī)范的Flannel,提供了Pod間通訊的標(biāo)準(zhǔn)化網(wǎng)絡(luò)解決方案。通過為每個(gè)Pod 分配獨(dú)立IP 地址,并將數(shù)據(jù)包封裝在獨(dú)立網(wǎng)絡(luò)(覆蓋網(wǎng)絡(luò) Overlay Network)中進(jìn)行轉(zhuǎn)發(fā),能夠有效解決Pod 資源跨域、跨節(jié)點(diǎn)的通信問題。

(3)Traefik 組件承擔(dān)了平臺內(nèi)服務(wù)自發(fā)現(xiàn)的功能,同時(shí),實(shí)時(shí)監(jiān)測Service 自動更新路由規(guī)則,實(shí)現(xiàn)更加便捷高效的服務(wù)發(fā)布。根據(jù)預(yù)先定義的邏輯規(guī)則對外部請求進(jìn)行攔截,支持HTTP 反向代理或負(fù)載均衡等不同的工作模式。

(4)Dashboard 組件是一個(gè)基于Web 圖形化界面的集群管理用戶接口,用于部署容器化應(yīng)用及服務(wù),同時(shí)可監(jiān)控集群狀態(tài)、執(zhí)行故障排查及管理集群資源[13],配合Metrics-Server 組件可實(shí)現(xiàn)對集群核心狀態(tài)的聚合可視化監(jiān)控。

3 私有化容器云平臺關(guān)鍵技術(shù)

3.1 Node 節(jié)點(diǎn)證書自簽機(jī)制

由于Master 節(jié)點(diǎn)中的API Server 組件啟用了TLS 認(rèn)證,當(dāng)Node 節(jié)點(diǎn)中的Kubelet 和Kube-proxy組件與API Server 進(jìn)行通信時(shí),必須使用CA 認(rèn)證中心簽發(fā)的有效證書才能建立互信通道。因此當(dāng)平臺需要擴(kuò)容時(shí),通常需要手動為新加入集群的Node 節(jié)點(diǎn)簽署和頒發(fā)證書,在帶來較大工作量的同時(shí)會增加集群擴(kuò)展的復(fù)雜度。

為了簡化集群擴(kuò)容工作流程,本文采用TLS Bootstraping 機(jī)制來實(shí)現(xiàn)客戶端證書的自動頒發(fā),證書自簽流程如圖3 所示。

圖3 TLS bootstraping 證書自簽流程

當(dāng)新加入集群的Node 節(jié)點(diǎn)中的kubelet 組件在啟動時(shí)會加載TLS Bootstraping 的Kubeconfig 認(rèn)證配置文件,并以一個(gè)較低的用戶權(quán)限向核心組件API Server 申請證書,當(dāng)認(rèn)證配置信息中的token 加密數(shù)據(jù)和權(quán)限驗(yàn)證通過后,會創(chuàng)建證書簽名請求(CSR,Certificate Signing Request)并自動完成證書的簽署和頒發(fā)。

3.2 分布式文件存儲

傳統(tǒng)容器云平臺通常使用網(wǎng)絡(luò)文件系統(tǒng)(NFS,Network File System)+ 持久存儲卷聲名(PVC,Persistent Volume Claim)+ 持久存儲卷(PV,Persistent Volume)的存儲資源配置方案,但由于NFS 共享存儲安全性較低且存在單點(diǎn)故障隱患,因此本文引入了Ceph 分布式文件存儲系統(tǒng),利用多臺存儲服務(wù)器有效分擔(dān)存儲負(fù)荷,不僅可以提高系統(tǒng)的可靠性、可用性和存取效率,還能夠有效將硬件設(shè)備引入的不穩(wěn)定因素降到最低。Ceph 在存儲數(shù)據(jù)時(shí)能夠充分且均衡地利用每個(gè)計(jì)算節(jié)點(diǎn)的存儲能力,同時(shí),提供可供集群選擇的塊存儲(RBD,Rados Block Device)、對象存儲(RGW,Rados GateWay)及文件系統(tǒng)存儲(cephFS,cephFleSorage)等服務(wù)[14]。ceph 在 Kubernetes 集群中的應(yīng)用模式如圖4 所示,利用集群中Node 節(jié)點(diǎn)的磁盤空間構(gòu)建一個(gè)高性能、高可用、易拓展的分布式存儲集群,為私有化容器云平臺提供可負(fù)載多種業(yè)務(wù)的、安全可靠的數(shù)據(jù)存儲服務(wù)。

圖4 ceph 在Kubernetes 集群中的應(yīng)用模式

4 應(yīng)用方向及風(fēng)險(xiǎn)應(yīng)對策略

4.1 應(yīng)用方向

本文構(gòu)建的私有化容器云平臺具備高性能、高可用、易拓展等特性及較高的安全性,可為構(gòu)建企業(yè)級數(shù)據(jù)中心提供全新的云計(jì)算參考模型,同時(shí)為企業(yè)內(nèi)部存量信息系統(tǒng)及應(yīng)用遷移上云提供最小化資源消耗的解決方案,能夠?qū)崿F(xiàn)研發(fā)項(xiàng)目的敏捷管理、自動化測試、持續(xù)集成和持續(xù)交付,完成需求交付端到端流程的自動化,橫向打通設(shè)計(jì)、研發(fā)、測試、運(yùn)維等部門間的數(shù)據(jù)壁壘,助力企業(yè)提升內(nèi)部協(xié)同效率和工作質(zhì)量。

4.2 風(fēng)險(xiǎn)及應(yīng)對策略

私有化容器云平臺在構(gòu)建過程中可能存在以下風(fēng)險(xiǎn):(1)在容器和容器編排技術(shù)領(lǐng)域,相關(guān)開源技術(shù)及產(chǎn)品種類繁多且良莠不齊,為技術(shù)選型帶來了一定的難度;(2)平臺采用了大量第三方開源產(chǎn)品及組件,社區(qū)開源軟件相較于商業(yè)企業(yè)軟件往往缺乏更可靠的技術(shù)支持服務(wù),因此存在一定的供應(yīng)鏈安全風(fēng)險(xiǎn);(3)平臺涉及網(wǎng)絡(luò)、存儲、日志、監(jiān)控、安全、微服務(wù)等眾多技術(shù)維度,研發(fā)、運(yùn)維團(tuán)隊(duì)的技術(shù)儲備和經(jīng)驗(yàn)不足時(shí)將難以支撐企業(yè)在容器云平臺下的應(yīng)用開發(fā)和運(yùn)維等需求。

為盡量規(guī)避上述風(fēng)險(xiǎn),本文提出以下應(yīng)對策略:(1)在選擇構(gòu)建容器云平臺的技術(shù)路線或產(chǎn)品時(shí),應(yīng)確保各產(chǎn)品和組件之間保持松耦合架構(gòu),方便更新和替換,尤其要強(qiáng)化應(yīng)對供應(yīng)鏈產(chǎn)品出現(xiàn)重大安全漏洞及供應(yīng)鏈產(chǎn)品斷供等極端情況下的應(yīng)急處置措施;(2)對于集群中核心組件的非缺陷性版本升級需求,要保持謹(jǐn)慎,至少應(yīng)在非生產(chǎn)環(huán)境或測試環(huán)境中予以充分驗(yàn)證后再投入使用;(3)要不斷強(qiáng)化相關(guān)技術(shù)領(lǐng)域的技術(shù)培訓(xùn)和人才培養(yǎng)工作,為企業(yè)全面應(yīng)用容器化云平臺提供強(qiáng)有力的技術(shù)支撐。

5 結(jié)束語

本文以國產(chǎn)開源Linux 系統(tǒng)為云基座,以Kubernetes+Docker 構(gòu)建私有化容器云平臺,為企業(yè)構(gòu)建標(biāo)準(zhǔn)化、規(guī)范化的信息基礎(chǔ)設(shè)施提供了研究方向,同時(shí)也為企業(yè)提升開發(fā)運(yùn)維效率、優(yōu)化信息資源配置提供了新的解決方案。

作為能夠承載企業(yè)級應(yīng)用需求的私有化容器云平臺,如何在平臺中提供通用的、基礎(chǔ)的且具有共性需求的技術(shù)、數(shù)據(jù)及資源支撐服務(wù),將是平臺向標(biāo)準(zhǔn)化、成熟化演進(jìn)的重要技術(shù)實(shí)踐路徑。未來將重點(diǎn)研究如何通過構(gòu)建技術(shù)中臺來逐步完善云平臺基礎(chǔ)設(shè)施,有效將技術(shù)能力與業(yè)務(wù)能力進(jìn)行分離,通過標(biāo)準(zhǔn)應(yīng)用程序接口實(shí)現(xiàn)快速集成,以標(biāo)準(zhǔn)化、產(chǎn)品化的方式為集群應(yīng)用提供技術(shù)支撐。

猜你喜歡
私有化鏡像容器
Different Containers不同的容器
鏡像
難以置信的事情
Q7 私有化后市場潛力還有多大?
Q1 私有化的好處?
蘇富比私有化10問
鏡像
小康(2018年23期)2018-08-23 06:18:52
取米
鏡像
小康(2015年4期)2015-03-31 14:57:40
鏡像
小康(2015年6期)2015-03-26 14:44:27
桑日县| 兴安县| 家居| 汾西县| 昌黎县| 潼关县| 嘉兴市| 河西区| 尼木县| 江都市| 双峰县| 门源| 莱西市| 会东县| 平乡县| 准格尔旗| 石狮市| 新余市| 南溪县| 长白| 北流市| 竹溪县| 巫山县| 福建省| 乌拉特前旗| 河南省| 苏尼特右旗| 克东县| 海晏县| 南雄市| 永和县| 云龙县| 公主岭市| 长顺县| 沈阳市| 大邑县| 青川县| 电白县| 孝感市| 新邵县| 茌平县|