工業(yè)互聯(lián)網(wǎng)邊緣計算 課件 任務(wù)3.2 邊云協(xié)同系統(tǒng)部署_第1頁
工業(yè)互聯(lián)網(wǎng)邊緣計算 課件 任務(wù)3.2 邊云協(xié)同系統(tǒng)部署_第2頁
工業(yè)互聯(lián)網(wǎng)邊緣計算 課件 任務(wù)3.2 邊云協(xié)同系統(tǒng)部署_第3頁
工業(yè)互聯(lián)網(wǎng)邊緣計算 課件 任務(wù)3.2 邊云協(xié)同系統(tǒng)部署_第4頁
工業(yè)互聯(lián)網(wǎng)邊緣計算 課件 任務(wù)3.2 邊云協(xié)同系統(tǒng)部署_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

——工業(yè)互聯(lián)網(wǎng)邊緣計算——模塊3部署邊云協(xié)同系統(tǒng)架構(gòu)和平臺架構(gòu)目錄CONTENTS邊云協(xié)同與項目整體方案設(shè)計任務(wù)3.1邊云協(xié)同系統(tǒng)部署任務(wù)3.2邊云協(xié)同平臺部署任務(wù)3.3系統(tǒng)高并發(fā)性與高可用性配置任務(wù)3.4數(shù)據(jù)平臺與邊緣網(wǎng)關(guān)協(xié)同案例任務(wù)3.5任務(wù)3.2邊云協(xié)同系統(tǒng)部署導(dǎo)入通過對任務(wù)3.1的學(xué)習(xí)可知,邊云協(xié)同類型的邊緣計算項目包括云、邊、端三部分。云部分通常又稱為云端部分,由大規(guī)模以及超大規(guī)模的云計算數(shù)據(jù)中心組成,如果有多個云計算數(shù)據(jù)中心,它們之間可以通過骨干網(wǎng)連接,實現(xiàn)算力協(xié)同,提高服務(wù)能力。邊部分通常又稱為邊緣部分,既可以由構(gòu)建在MEC服務(wù)器上的邊緣數(shù)據(jù)中心組成,也可以由邊緣網(wǎng)關(guān)組成,還可以包含兩級邊緣節(jié)點。邊緣數(shù)據(jù)中心和云計算數(shù)據(jù)中心之間可以協(xié)同運行,多個邊緣數(shù)據(jù)中心之間可以通過邊緣網(wǎng)關(guān)實現(xiàn)交互,如圖所示。在邊緣計算興起之前,云計算數(shù)據(jù)中心的發(fā)展已經(jīng)相對成熟,所以接下來從云計算數(shù)據(jù)中心的基本構(gòu)成入手,學(xué)習(xí)云計算數(shù)據(jù)中心的部署方式和邊云協(xié)同的部署方式。3.2.1云計算數(shù)據(jù)中心基本構(gòu)成在過去的20年中,數(shù)據(jù)中心的發(fā)展見證了互聯(lián)網(wǎng)的興起。如今,數(shù)據(jù)中心已經(jīng)成為云計算的重要基礎(chǔ)承載設(shè)施,可以說沒有數(shù)據(jù)中心,所謂的大數(shù)據(jù)和云計算,只是空殼和虛無的概念,根本無從談起。云計算數(shù)據(jù)中心簡稱云中心,是一整套復(fù)雜的設(shè)施,一種“倉庫規(guī)模的計算機系統(tǒng)”。云中心由四大部分組成:環(huán)境、硬件設(shè)備、基礎(chǔ)軟件、應(yīng)用支撐平臺。如圖所示為云中心機房。1)環(huán)境:主要指云中心機房及建筑物布線等設(shè)施,包括電力、制冷、消防、門禁、監(jiān)控、裝修等;2)硬件設(shè)備:主要包括服務(wù)器、存儲、災(zāi)備、核心網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)安全設(shè)備、機柜及其配套設(shè)施等。3)基礎(chǔ)軟件:主要包括IaaS管理軟件、操作系統(tǒng)軟件、虛擬化軟件、數(shù)據(jù)庫軟件、防病毒軟件等。4)應(yīng)用支撐平臺:具有行業(yè)特點的統(tǒng)一平臺,作用是整合異構(gòu)系統(tǒng)、互通數(shù)據(jù)資源。其中,服務(wù)器是云中心的基本硬件設(shè)備,也是云中心的核心設(shè)備,它為云計算平臺提供計算能力,為用戶提供大規(guī)模計算、大規(guī)模存儲、高通量網(wǎng)絡(luò)服務(wù)。和通用計算機相比,服務(wù)器具有更高的處理能力、更優(yōu)秀的穩(wěn)定性和可靠性,并且對可擴展性和可管理性也有著較高的要求。因此,部署云中心的重要工作之一就是部署云服務(wù)器。3.2.2虛擬化、容器、集群、云原生等重要技術(shù)1.虛擬化云計算的快速發(fā)展對資源管理提出了新的要求。在新一代數(shù)據(jù)中心構(gòu)建過程中,虛擬化技術(shù)起著關(guān)鍵作用,對于促進(jìn)資源靈活分配、優(yōu)化系統(tǒng)整體效能、降低計算服務(wù)成本、實現(xiàn)高并發(fā)性和高可用性具有重要意義。虛擬化技術(shù)是計算機資源的邏輯表示。通過在系統(tǒng)中增加一個虛擬化層,把底層資源抽象為另一種形式的資源,通常叫邏輯資源池或者資源共享池,將池中資源提供給上層應(yīng)用使用和共享,實現(xiàn)上層應(yīng)用和下層資源的解耦合,實現(xiàn)物理資源的充分利用。從使用形式上看,虛擬機(VirtualMachine,VM)是虛擬化技術(shù)的一種典型使用形式。虛擬機一詞從字面上講,可以拆分為“虛擬化”+“機器”。根據(jù)虛擬化技術(shù)的先行者Goldberg在1972年的定義,虛擬機是一種系統(tǒng),是一個真實存在的軟硬件的副本。在這一過程中,虛擬機監(jiān)視器(VirtualMachineMonitor,VMM)為軟件和硬件的復(fù)制提供必要的機制。虛擬機本質(zhì)上是一套軟件系統(tǒng),它和我們接觸的物理機可以形成對應(yīng)。物理機的主要組成部分包括處理器、存儲設(shè)備、網(wǎng)絡(luò)設(shè)備。對于虛擬機來說,也存在虛擬處理器、虛擬存儲、虛擬網(wǎng)絡(luò),其中處理器(計算)虛擬化的實現(xiàn)最為關(guān)鍵。從實現(xiàn)方式上看,虛擬機有三種典型的實現(xiàn)方式:寄居虛擬化、裸金屬虛擬化、混合虛擬化,如圖所示。3.2.2虛擬化、容器、集群、云原生等重要技術(shù)1.虛擬化3.2.2虛擬化、容器、集群、云原生等重要技術(shù)1.虛擬化(1)寄居虛擬化寄居虛擬化將原本安裝在物理硬件上的操作系統(tǒng)稱為宿主機操作系統(tǒng),其實現(xiàn)方式是將虛擬化軟件以應(yīng)用程序的方式安裝在宿主機操作系統(tǒng)上,在宿主機操作系統(tǒng)上構(gòu)建虛擬化層VMM,通過VMM實現(xiàn)虛擬機操作系統(tǒng)的系統(tǒng)隔離和資源調(diào)度。典型代表有:VMwareWorkstation,OracleVMVirtualBox。3.2.2虛擬化、容器、集群、云原生等重要技術(shù)1.虛擬化(2)裸金屬虛擬化裸金屬虛擬化中沒有宿主機操作系統(tǒng),其實現(xiàn)方式是將虛擬化軟件直接安裝在裸金屬物理硬件上,在裸金屬物理硬件上構(gòu)建虛擬化層VMM,通過VMM實現(xiàn)虛擬機操作系統(tǒng)的系統(tǒng)隔離和資源調(diào)度。VMM在這種形式下的典型架構(gòu)是Hypervisor架構(gòu),源于劍橋大學(xué)在2003年推出的Xen項目,是一個基于原生態(tài)硬件的虛擬化層,換句話說,是一個介于原生態(tài)硬件和虛擬機操作系統(tǒng)之間的虛擬化層。3.2.2虛擬化、容器、集群、云原生等重要技術(shù)1.虛擬化(3)混合虛擬化混合虛擬化將原本安裝在物理硬件上的操作系統(tǒng)稱為宿主機操作系統(tǒng),其實現(xiàn)方式是將虛擬化軟件以系統(tǒng)內(nèi)核的形式嵌入到宿主機操作系統(tǒng)中,將宿主機操作系統(tǒng)轉(zhuǎn)變?yōu)樘摂M化層VMM,通過VMM實現(xiàn)虛擬機操作系統(tǒng)的系統(tǒng)隔離和資源調(diào)度。VMM在這種形式下的典型架構(gòu)是KVM架構(gòu),僅支持Linux操作系統(tǒng)為宿主機操作系統(tǒng)。3.2.2虛擬化、容器、集群、云原生等重要技術(shù)2.容器容器并不是近年來出現(xiàn)的全新概念,而是源于操作系統(tǒng)級虛擬化。操作系統(tǒng)級虛擬化是一種虛擬化技術(shù),能夠?qū)崿F(xiàn)多個相互隔離的實例(Instance)共享一個操作系統(tǒng)的內(nèi)核(Kernel),此過程中包含相應(yīng)程序組件的實例即為容器,如圖所示。3.2.2虛擬化、容器、集群、云原生等重要技術(shù)2.容器雖然容器封裝了程序運行的基本環(huán)境,它卻是輕量級的系統(tǒng)。和虛擬機相比,它不需要運行VMM或者Hypervisor,因而減少了額外負(fù)載。在容器的支持下,用戶能夠從現(xiàn)有硬件資源中獲取更豐厚的性能回報,可以在一個內(nèi)核上運行基于不同庫函數(shù)和環(huán)境的程序,對計算的衡量也可以采用從一個物理機或者虛擬機到更細(xì)粒度更靈活的容器實例等不同單位。雖然容器相比虛擬機而言有很多優(yōu)勢,但也存在很多問題,最關(guān)鍵的三個問題是容器的安全性問題、隱私性問題、隔離性問題。因為容器極度依賴其主機操作系統(tǒng),所以:任何對主機操作系統(tǒng)的攻擊都可能導(dǎo)致容器異常,即為容器的安全性問題;主機操作系統(tǒng)能夠看到容器中的一切資源和內(nèi)容,即為容器的隱私性問題;更重要的是,一個容器一旦成功獲取其主機操作系統(tǒng)的管理權(quán)限,它可能直接影響其它并行容器的運行狀態(tài),即為容器的隔離性問題。隨著容器技術(shù)在云環(huán)境中重要性的上升,針對容器的集群調(diào)度和編排也將成為關(guān)鍵。3.2.2虛擬化、容器、集群、云原生等重要技術(shù)3.集群隨著云計算的快速發(fā)展,云計算系統(tǒng)高并發(fā)性與高可用性都離不開一個關(guān)鍵概念——集群。集群是一組獨立節(jié)點的結(jié)合體,形式上可以是物理機,也可以是虛擬機、容器,或者是具體的應(yīng)用服務(wù),節(jié)點間通過高性能的網(wǎng)絡(luò)相連接,各節(jié)點除了可以作為單一資源供用戶使用以外,還可以協(xié)同工作并表示為一個集中資源。從結(jié)構(gòu)和功能上看,集群主要可以分為三類:高可用集群、負(fù)載均衡集群、高性能計算集群,如表所示。集群類型集群形式高可用集群高可用集群一般是指當(dāng)集群中某個節(jié)點失效或者進(jìn)行離線維護再上線時,該節(jié)點上的任務(wù)會自動轉(zhuǎn)移到其他正常工作的節(jié)點上。最常見的就是兩個節(jié)點組成的高可用集群,日常也稱為“雙機熱備”“雙機互備”“雙機”。負(fù)載均衡集群負(fù)載均衡集群一般是指通過一個或者多個前端負(fù)載均衡器將負(fù)載均衡分配到后端提供相同功能的節(jié)點上。日常最常見的應(yīng)用服務(wù)集群即為一種負(fù)載均衡集群。高性能計算集群高性能計算集群致力于將計算任務(wù)分配到集群的不同節(jié)點而提高計算能力,致力于提供單個計算機不能提供的強大計算能力,因而主要應(yīng)用在科學(xué)計算領(lǐng)域。3.2.2虛擬化、容器、集群、云原生等重要技術(shù)4.云原生云原生的主旨是構(gòu)建運行在云端的應(yīng)用程序,致力于使應(yīng)用程序能夠最大限度地利用云計算技術(shù)特性的優(yōu)勢,提供更加優(yōu)質(zhì)的應(yīng)用服務(wù)。云原生準(zhǔn)確來說是一種文化,更是一種潮流,它是云計算的一個必然導(dǎo)向。意義在于讓云成為云化戰(zhàn)略成功的基石,而不是障礙。如圖所示,以云原生為指導(dǎo)的云端應(yīng)用程序開發(fā)部署過程中,主要涉及微服務(wù)、容器、DevOps、持續(xù)集成與持續(xù)交付等四個關(guān)鍵技術(shù)。3.2.2虛擬化、容器、集群、云原生等重要技術(shù)4.云原生(1)微服務(wù)微服務(wù)是將應(yīng)用程序開發(fā)為一系列小型服務(wù)的體系結(jié)構(gòu),每個服務(wù)都實現(xiàn)獨立的業(yè)務(wù)功能,運行在自己的進(jìn)程中,服務(wù)之間通過HTTPAPI或者消息傳遞進(jìn)行通信。每個微服務(wù)都可以獨立于應(yīng)用程序中的其他服務(wù)進(jìn)行部署、升級、擴展和重新啟動,通常作為自動化系統(tǒng)的一部分,能夠在不影響最終用戶的情況下頻繁更新現(xiàn)場應(yīng)用程序。(2)容器容器相比虛擬機而言,擁有更高的資源使用效率,因為它不需要為單個微服務(wù)分配獨立的操作系統(tǒng),所以實例規(guī)模更小、創(chuàng)建速度和遷移速度也更快,是部署單個微服務(wù)的理想工具。對容器進(jìn)行集群調(diào)度和編排后,將極大增強系統(tǒng)的拓展能力和自愈能力,輕松應(yīng)對實際業(yè)務(wù)中的高并發(fā)場景和高可用場景。(3)DevOpsDevOps是Development和Operations的結(jié)合,是一種“開發(fā)人員(Dev)”和“運維人員(Ops)”之間溝通合作的文化、行動和規(guī)則。通過自動化軟件交付和架構(gòu)變更的流程,使得構(gòu)建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。(4)持續(xù)集成與持續(xù)交付持續(xù)集成與持續(xù)交付是一種軟件開發(fā)的實踐方法,致力于指導(dǎo)開發(fā)團隊減少軟件構(gòu)建錯誤,實現(xiàn)軟件的頻繁發(fā)布、快速部署、及時反饋,降低發(fā)布風(fēng)險。3.2.3云服務(wù)器系統(tǒng)部署方式1.物理資源虛擬化虛擬化資源池是云服務(wù)器系統(tǒng)部署中非常重要的概念。實際應(yīng)用中,對于單個云服務(wù)器而言,虛擬化有三種實現(xiàn)方式:寄居虛擬化、裸金屬虛擬化、混合虛擬化。一般而言,因為寄居虛擬化操作簡單、方便實現(xiàn),所以個人應(yīng)用和小型企業(yè)應(yīng)用以VMwareWorkstation和OracleVMVirtualBox等寄居虛擬化為主。但是對于大中型企業(yè)應(yīng)用而言,裸金屬虛擬化或者混合虛擬化可以提供更高的性能特性,所以大中型企業(yè)應(yīng)用以Xen等裸金屬虛擬化或者KVM等混合虛擬化為主。3.2.3云服務(wù)器系統(tǒng)部署方式1.物理資源虛擬化單個云服務(wù)器在實現(xiàn)了物理資源虛擬化以后,就可以被分割為多個虛擬服務(wù)器,為多個虛擬服務(wù)器提供隔離環(huán)境。實際應(yīng)用中,虛擬化資源池也可以進(jìn)一步跨服務(wù)器運行,可以由數(shù)據(jù)中心或者跨數(shù)據(jù)中心的數(shù)十?dāng)?shù)百甚至數(shù)萬臺服務(wù)器集群組成,虛擬化資源池中的資源通過成熟的虛擬化技術(shù)共同管理,實現(xiàn)資源的高度集成和靈活分配,如圖所示。3.2.3云服務(wù)器系統(tǒng)部署方式2.虛擬機系統(tǒng)部署(1)操作系統(tǒng)部署常用操作系統(tǒng)有Windows、Linux、MacOS等多種類型。其中,Windows操作系統(tǒng)是日常生活中個人計算機的常用操作系統(tǒng),其主要特點是界面友好、窗口優(yōu)美、操作動作簡單易學(xué)、多代系統(tǒng)之間具有良好傳承、計算機資源管理效率較高。但是對于企業(yè)云服務(wù)器部署而言,Linux操作系統(tǒng)提供了更多優(yōu)勢。比如,Linux操作系統(tǒng)開源且免費,企業(yè)開發(fā)人員可以根據(jù)需要對Linux操作系統(tǒng)的內(nèi)核代碼進(jìn)行查看、修改、再創(chuàng)作;再者,Linux操作系統(tǒng)不僅具有比Windows操作系統(tǒng)更高的穩(wěn)定性、安全性、靈活性,而且具有比Windows操作系統(tǒng)更低的硬件要求和運維成本。所以Linux操作系統(tǒng)是企業(yè)云服務(wù)器部署的首要選擇。而且后面要進(jìn)行的容器部署本身也是在Linux操作系統(tǒng)的基礎(chǔ)上發(fā)展起來的,雖然現(xiàn)階段也有針對Windows操作系統(tǒng)的容器部署,但是Linux操作系統(tǒng)依舊是容器部署的首要選擇。故選擇Linux操作系統(tǒng)為虛擬機的操作系統(tǒng)。Linux操作系統(tǒng)又有不同的發(fā)行版本,比如Ubuntu和CentOS就是Linux操作系統(tǒng)中的兩種常用版本。Ubuntu和CentOS本身是基于Linux操作系統(tǒng)中的不同架構(gòu)發(fā)展來的。Ubuntu基于的是Linux操作系統(tǒng)中的Debian架構(gòu),相比CentOS而言具有更好的圖形界面支撐,更新頻率較高。CentOS基于的是Linux操作系統(tǒng)中的RHEL架構(gòu),相比Ubuntu而言缺乏良好的圖形界面支撐,更新頻率較低。實際應(yīng)用中,一方面,圖形界面雖然可以簡化操作,但是也會占用更多內(nèi)存,所以圖形界面是桌面操作系統(tǒng)的首要選擇,但卻不是企業(yè)云服務(wù)器或者虛擬機部署操作系統(tǒng)時的首要選擇。另一方面,相比更新頻率而言,企業(yè)應(yīng)用往往更看重操作系統(tǒng)的穩(wěn)定性與可靠性。所以在實際應(yīng)用中,Ubuntu是個人桌面部署Linux操作系統(tǒng)時的首要選擇,CentOS是企業(yè)云服務(wù)器或者虛擬機部署Linux操作系統(tǒng)時的首要選擇。故選擇CentOS為Linux操作系統(tǒng)的具體版本。3.2.3云服務(wù)器系統(tǒng)部署方式2.虛擬機系統(tǒng)部署(2)容器集群部署CentOS操作系統(tǒng)為虛擬機運行提供操作系統(tǒng)支持,接下來可以在操作系統(tǒng)上面進(jìn)行容器集群的部署,選擇基于Docker+Kubernetes(可以簡稱K8S)的方式。其中:Docker是一種容器引擎技術(shù),為容器化應(yīng)用的封裝和分發(fā)提供了統(tǒng)一的標(biāo)準(zhǔn),為容器在單節(jié)點上創(chuàng)建和運行提供了統(tǒng)一的標(biāo)準(zhǔn);Kubernetes是一種集群架構(gòu)技術(shù),本身不具備容器的創(chuàng)建功能或者運行功能,需要與以Docker為例的容器引擎技術(shù)結(jié)合使用,為容器在集群節(jié)點上調(diào)度和編排提供了統(tǒng)一的標(biāo)準(zhǔn)。此外,要將應(yīng)用以容器形式部署,鏡像(Image)和倉庫(Repository)也是必不可少的兩個關(guān)鍵概念。鏡像可以看成容器的模板,就像安裝操作系統(tǒng)時的iso模板一樣。而倉庫是存放鏡像的地方。DockerHub就是Docker提供的一個公有倉庫。但是對于企業(yè)而言,企業(yè)開發(fā)人員將開發(fā)好的應(yīng)用打包成鏡像以后,往往并不希望將他們開發(fā)的鏡像上傳到以DockerHub為例的公有倉庫當(dāng)中,而是希望能在企業(yè)內(nèi)部部署私有倉庫,讓他們開發(fā)的鏡像在企業(yè)內(nèi)網(wǎng)中使用和管控。Harbor倉庫就是一種常用的企業(yè)級私有倉庫。目前,Kubernetes已經(jīng)獲得了Docker的官方支持,基于Docker+Kubernetes的方案也已經(jīng)成為容器集群部署的主流方案。3.2.3云服務(wù)器系統(tǒng)部署方式3.DockerDocker是一種容器引擎技術(shù),使用的是客戶端/服務(wù)器(Client/Server,C/S)架構(gòu)。如圖所示,Docker以單節(jié)點為宿主機進(jìn)行部署,部署以后會在宿主機上啟動一個守護進(jìn)程(Daemon),同時為用戶提供命令行工具或者圖形化工具作為客戶端,用戶在客戶端上輸入需要執(zhí)行的docker命令,客戶端將命令發(fā)送到守護進(jìn)程中,守護進(jìn)程執(zhí)行鏡像或者容器的具體操作。在部署好CentOS操作系統(tǒng)的基礎(chǔ)上,既可以通過CentOS操作系統(tǒng)的yum工具進(jìn)行Docker的安裝,也可以通過二進(jìn)制包形式進(jìn)行Docker的安裝。以通過yum工具進(jìn)行安裝為例,Docker的安裝方式和運行方式如下:3.2.3云服務(wù)器系統(tǒng)部署方式3.Docker—安裝1)關(guān)閉CentOS操作系統(tǒng)的防火墻、SELinux、swap分區(qū),命令如下:#systemctlstopfirewalld.service#systemctldisablefirewalld.service#sed-i's/enforcing/disabled/'/etc/selinux/config#setenforce0#swapoff-a2)配置Docker的yum源,命令如下:#wget-P/etc/yum.repos.d//docker-ce/linux/centos/docker-ce.repo3)安裝Docker服務(wù),假設(shè)版本選擇18.09.0,命令如下:#yuminstalldocker-ce-18.09.0-3.el7-y4)啟動Docker服務(wù),命令如下:#systemctlstartdocker.service&&systemctlenabledocker.service3.2.3云服務(wù)器系統(tǒng)部署方式3.Docker—運行Docker在集群中的每個節(jié)點上獨立運行,所以安裝并且啟動Docker服務(wù)以后,集群中的每個節(jié)點都可以根據(jù)需要執(zhí)行docker命令,也可以根據(jù)需要配置DockerHub公有倉庫的鏡像加速器或者配置Harbor私有倉庫。3.2.3云服務(wù)器系統(tǒng)部署方式4.KubernetesKubernetes是一種集群架構(gòu)技術(shù),使用的是主從(Master/Slave,M/S)架構(gòu)。如圖所示,Kubernetes在集群節(jié)點中部署,部署時需要部署一個主節(jié)點(又稱為Master節(jié)點)和多個從節(jié)點(又稱為Node節(jié)點),Master節(jié)點為用戶提供集群控制的入口,用戶在Master節(jié)點上輸入需要執(zhí)行的kubectl命令,Master節(jié)點和Node節(jié)點交互,在集群中以Pod為單位進(jìn)行容器的調(diào)度和編排,Pod是Kubernetes中定義的最小操作對象,通常一個Pod只包含一個容器,但也可以將需要緊密協(xié)作的多個容器捆綁到一個Pod中,以Pod集群為新的層面提供服務(wù)。在部署好Docker容器引擎的基礎(chǔ)上,既可以通過CentOS操作系統(tǒng)的yum工具進(jìn)行Kubernetes的安裝,也可以通過二進(jìn)制包形式進(jìn)行Kubernetes的安裝。以通過yum工具進(jìn)行安裝為例,Kubernetes的安裝方式和運行方式如下:3.2.3云服務(wù)器系統(tǒng)部署方式4.Kubernetes—安裝1)關(guān)閉CentOS操作系統(tǒng)的防火墻、SELinux、swap分區(qū),命令如下:#systemctlstopfirewalld.service#systemctldisablefirewalld.service#sed-i's/enforcing/disabled/'/etc/selinux/config#setenforce0#swapoff-a2)配置Kubernetes的yum源,命令如下:#cat>/etc/yum.repos.d/kubernetes.repo<<EOF[kubernetes]name=Kubernetesbaseurl=/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=/kubernetes/yum/doc/yum-key.gpg/kubernetes/yum/doc/rpm-package-key.gpgEOF3.2.3云服務(wù)器系統(tǒng)部署方式4.Kubernetes—安裝3)安裝Kubernetes服務(wù),假設(shè)版本選擇1.20.0,命令如下:#yuminstallkubelet-1.20.0kubeadm-1.20.0kubectl-1.20.0-y4)啟動Kubernetes服務(wù),命令如下:#systemctlstartkubelet&&systemctlenablekubelet3.2.3云服務(wù)器系統(tǒng)部署方式4.Kubernetes—運行1)在每個節(jié)點的/etc/hosts文件中添加集群中各節(jié)點的IP地址與主機名的對應(yīng)關(guān)系。假設(shè)集群由一個Master節(jié)點和兩個Node節(jié)點組成:Master節(jié)點的主機名為master,IP地址為;Node節(jié)點的主機名為node1和node2,IP地址為1和2。對應(yīng)在每個節(jié)點的/etc/hosts文件中添加內(nèi)容如下:master1node12node22)在每個節(jié)點上安裝flannel插件,flannel插件提供一種基于Overlay網(wǎng)絡(luò)的跨節(jié)點容器網(wǎng)絡(luò)解決方案,是Kubernetes中常用的容器網(wǎng)絡(luò)解決方案,它的安裝方式也很簡單,在每個節(jié)點上手動下載cni-plugins-linux-amd64-v0.8.6.tgz文件,將其中的flannel文件拷貝到/opt/cni/bin/目錄下即可,命令如下:#tarzxvfcni-plugins-linux-amd64-v0.8.6.tgz&&cpflannel/opt/cni/bin/除此之外,還需要在master節(jié)點上手動下載kube-flannel.yml文件,用于后續(xù)配置過程。3.2.3云服務(wù)器系統(tǒng)部署方式4.Kubernetes—運行3)在master節(jié)點上通過kubeadminit命令啟動Kubernetes集群,命令如下:#kubeadminit\--apiserver-advertise-address=\--image-repository/google_containers\--kubernetes-versionv1.20.0\--service-cidr=/16\--pod-network-cidr=/16其中,為master節(jié)點的IP地址,v1.20.0為Kubernetes的版本號,/16為配置給集群中Service服務(wù)的網(wǎng)絡(luò)號,/16為配置給集群中Pod對象的網(wǎng)絡(luò)號。Kubernetes集群啟動成功后會有如圖所示輸出。輸出中顯示了Master節(jié)點的后續(xù)配置和Node節(jié)點加入集群時需要的憑證信息。3.2.3云服務(wù)器系統(tǒng)部署方式4.Kubernetes—運行3.2.3云服務(wù)器系統(tǒng)部署方式4.Kubernetes—運行4)在master節(jié)點上根據(jù)圖示內(nèi)容完成配置,需要先在master節(jié)點上手動下載kube-flannel.yml文件,然后命令如下:#mkdir-p$HOME/.kube#cp-i/etc/kubernetes/admin.conf$HOME/.kube/config#chown$(id-u):$(id-g)$HOME/.kube/config#kubectlapply-fkube-flannel.yml3.2.3云服務(wù)器系統(tǒng)部署方式4.Kubernetes—運行5)在node1節(jié)點和node2節(jié)點上根據(jù)圖示內(nèi)容加入集群,命令如下:#kubeadmjoin:6443--tokengich3c.xrs4tbi0z4chyvsq\--discovery-token-ca-cert-hashsha256:d480ddfd22bd8a3af7733c352a6f359fc457d2ab87f5404c80e0927a06b14293其中,為master節(jié)點的IP地址,--token和--discovery-token-ca-cert-hash為該集群的令牌信息和密鑰信息,是node1節(jié)點和node2節(jié)點加入集群的憑證。3.2.3云服務(wù)器系統(tǒng)部署方式4.Kubernetes—運行6)然后就可以在master節(jié)點上通過kubectl命令管理集群,比如查看節(jié)點信息,命令如下:#kubectlgetnodes-owide結(jié)果如圖所示。3.2.4邊云協(xié)同系統(tǒng)部署方式導(dǎo)入從場景需求上看,邊緣和云端有很多相似之處,比如:1)邊緣和云端均有管理本地資源、服務(wù)、應(yīng)用的需求,邊云協(xié)同意味著云端同時還有管理邊緣資源、服務(wù)、應(yīng)用的需求。2)邊緣和云端在應(yīng)用開發(fā)或者部署上均有微服務(wù)化和容器化的需求。3)邊緣和云端均有標(biāo)準(zhǔn)API和工具鏈方面的需求。4)邊緣和云端均有數(shù)據(jù)安全和認(rèn)證授權(quán)方面的需求。因此,邊云協(xié)同解決方案的核心在于將云端的現(xiàn)有架構(gòu)向邊緣延伸。3.2.4邊云協(xié)同系統(tǒng)部署方式1.Kubernetes向邊緣延伸通過前面的學(xué)習(xí)可知,在物理資源虛擬化和虛擬機操作系統(tǒng)部署的基礎(chǔ)上,基于Docker+Kubernetes的容器集群解決方案已經(jīng)成為云端的主流方案,Kubernetes在云端的部署如圖所示。Kubernetes已經(jīng)成為云原生的標(biāo)準(zhǔn)之一,但是Kubernetes畢竟是為云端設(shè)計的,直接將它向邊緣延伸會存在以下問題:1)ARM架構(gòu)因其低功耗、高能效、多核等特點,在邊緣應(yīng)用非常廣泛,但是大部分Kubernetes發(fā)行版不支持ARM架構(gòu)。2)邊緣通常資源有限,特別是CPU資源有限,難以部署完整的Kubernetes。3)Kubernetes非常依賴list/watch機制,不支持離線運行,但是離線運行對于邊緣而言是一種常態(tài),比如設(shè)備重啟或者休眠。4)Kubernetes的運維對于邊緣應(yīng)用場景而言過于復(fù)雜。5)網(wǎng)絡(luò)通信問題,比如工業(yè)設(shè)備基于非TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)接入。6)設(shè)備多租問題,比如互不信任的用戶對安全隔離提出高度要求。3.2.4邊云協(xié)同系統(tǒng)部署方式1.Kubernetes向邊緣延伸基于上述問題,學(xué)者們在Kubernetes的基礎(chǔ)上進(jìn)行了針對邊緣應(yīng)用場景的拓展和修改。Kubernetes包含眾多組件,既有運行在Master節(jié)點上的管理面組件,也有負(fù)責(zé)Node節(jié)點代理的Agent組件。KubernetesIoT/EdgeWG組織進(jìn)行過一個調(diào)查,結(jié)果顯示,關(guān)于如何在邊緣應(yīng)用場景中使用Kubernetes:70%的用戶希望在云端部署Kubernetes的管理面,僅在邊緣部署Kubernetes的Agent;30%的用戶希望在邊緣部署完整的Kubernetes,包括管理面和Agent。上述結(jié)果也顯示了Kubernetes向邊緣延伸的兩個發(fā)展方向。基于這兩個發(fā)展方向,有KubeEdge和K3S兩個開源項目?;谶@兩個開源項目,可以進(jìn)行不同需求下的邊緣系統(tǒng)部署和云端系統(tǒng)部署,即進(jìn)行邊云協(xié)同系統(tǒng)部署。3.2.4邊云協(xié)同系統(tǒng)部署方式2.KubeEdgeKubeEdge是華為捐獻(xiàn)給CNCF的第一個開源項目,也是全球首個基于Kubernetes擴展并且提供邊云協(xié)同能力的開放式邊緣計算平臺。KubeEdge的名字源于Kube+Edge,旨在依托Kubernetes對容器集群的調(diào)度能力和編排能力實現(xiàn)邊云協(xié)同、計算下沉、海量接入等功能。3.2.4邊云協(xié)同系統(tǒng)部署方式2.KubeEdgeKubeEdge是一個從云端到邊緣再到設(shè)備的完整的邊緣計算平臺。在Kubernetes的基礎(chǔ)上,KubeEdge結(jié)構(gòu)上有如下要點:1)在云端部署EdgeController,提供KubernetesAPIServer和邊緣之間的狀態(tài)同步。2)在云端部署CloudHub,接收EdgeHub同步到云端的信息。3)在邊緣部署EdgeHub,提供多路復(fù)用的消息通道和可靠高效的云邊同步。4)在邊緣部署Edged,相當(dāng)于輕量化的KubernetesKubelet,提供Node、Pod、Volume等Kubernetes資源對象的全生命周期管理。5)在邊緣部署MetaManager,提供元數(shù)據(jù)存儲,是邊緣自治的關(guān)鍵。6)在邊緣部署DeviceTwin,提供設(shè)備抽象化,并在云端生成映射。7)在邊緣部署EventBus,提供來自MQTTBroker的設(shè)備數(shù)據(jù)訂閱。3.2.4邊云協(xié)同系統(tǒng)部署方式3.K3SK3S是Rancher開源的一個自己剪裁的Kubernetes發(fā)行版。K3S的名字源于K8S-5,-5表示K3S比Kubernetes更輕量,旨在更好適配ARM、持續(xù)集成與持續(xù)交付、邊緣計算、物聯(lián)網(wǎng)、測試等場景。3.2.4邊云協(xié)同系統(tǒng)部署方式3.K3SK3S僅運行在邊緣,就像Kubernetes僅運行在云端一樣。在Kubernetes的基礎(chǔ)上,K3S結(jié)構(gòu)上有如下要點:1)刪除舊的、非必須的代碼,K3S不包含任何過時的、Alpha版的、非默認(rèn)的Kubernetes功能,此外,K3S還刪除了所有非默認(rèn)的AdmissionController,刪除了in-tree的CloudProvider和存儲插件。2)整合打包進(jìn)程,將Kubernetes中管理面和數(shù)據(jù)面以多進(jìn)程形式運行的多個進(jìn)程合并為一個。3)使用Containerd代替Docker作為容器運行時。4)使用SQLite代替ETCD作為管理面數(shù)據(jù)存儲。5)使用SQLite實現(xiàn)list/watch接口,即為TunnelProxy。6)增加一個簡單的安裝程序。3.2.4邊云協(xié)同系統(tǒng)部署方式4.KubeEdge與K3S對比如圖所示:KubeEdge將Kubernetes的管理面部署在云端,將Kubernetes的Agent部署在邊緣,邊緣屬于去中心化結(jié)構(gòu),與云端結(jié)合為一個完整的Kubernetes集群,可以實現(xiàn)邊云協(xié)同;K3S將Kubernetes的管

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論