中文字幕无码久久精品,13—14同岁无码A片,99热门精品一区二区三区无码,菠萝菠萝蜜在线观看视频高清1

您當(dāng)前的位置是:  首頁 > 新聞 > 專家觀點 >
 首頁 > 新聞 > 專家觀點 >

OpenStack+K8S為何是絕配

--最新培訓(xùn)PPT視頻

2017-07-11 14:30:43   作者:王后明   來源:開源云中文社區(qū)   評論:0  點擊:


  2017中國開源產(chǎn)業(yè)峰會暨第21屆中國國際軟件博覽會分論壇 
 6月28日,2017中國開源產(chǎn)業(yè)峰會暨第21屆中國國際軟件博覽會分論壇在北京隆重開幕。此次峰會由軟博會組委會指導(dǎo),北京市軟件與服務(wù)業(yè)協(xié)會和EasyStack聯(lián)合主辦。工業(yè)和信息化部信息化和軟件服務(wù)業(yè)司副司長李冠宇、北京市經(jīng)濟(jì)和信息化委員會委員姜廣智出席并致辭。
  基于Kubernetes構(gòu)建企業(yè)級容器云平臺視頻支持:IT大咖說
  以“開源、智能、未來”為主題,此次峰會特別聚焦開源容器技術(shù)領(lǐng)域,邀請了Linux基金會全球副總裁、CNCF COO Chris Aniszczyk到場進(jìn)行主題演講,在峰會特別打造的開源云核心技術(shù)培訓(xùn)專場中,來自EasyStack的容器架構(gòu)師王后明作了題為基于Kubernetes構(gòu)建企業(yè)級容器云平臺的培訓(xùn)演講,以下是他的演講內(nèi)容整理+PPT:
  EasyStack容器架構(gòu)師王后明
  大家下午好,開場之前先做個簡單的小調(diào)查。在座的各位如果用過OpenStack的請舉一下手,大部分都用過。那用過容器或者用過docker的有哪些同學(xué)?今天下午我分享的話題是基于Kubernetes構(gòu)建企業(yè)級的容器云平臺,整個分為三個大部分,首先我們簡單對比容器和虛擬機(jī)兩個之間的差異性,有一些特征,優(yōu)勢和劣勢。第二我們看一下容器云平臺在建構(gòu)的時候需要面臨哪些問題,第三可以看一下容器云平臺的典型應(yīng)用場景。
  首先看一下容器和虛擬機(jī)的區(qū)別,這個圖大家都是比較清楚。容器其實是對操作系統(tǒng)的封裝,把所有的應(yīng)用和它對應(yīng)的運行時封裝在一個容器里面,然后以快速的容器進(jìn)行的方式發(fā)布上線應(yīng)用,這是容器的主要作用。虛擬機(jī)是相反,它是相對于容器來說是更重量級的虛擬化技術(shù),本身是對物理硬件的虛擬,把整個一套CBO、IO存儲系統(tǒng)整個虛擬化出來,也有相應(yīng)的應(yīng)用軟件在里面,這是容器和虛擬機(jī)兩個最大的差異,一個是虛擬層級不一樣,一個是在操作系統(tǒng)的虛擬,一個是對物理硬件的虛擬,這樣所帶來的差異就是說容器相對于虛擬機(jī)來講更輕量級,密度可以更能讓真正的硬件更好的發(fā)揮它的最大的資源利用率,這是它兩者之間的一個差異。
  從這邊我們可以看到其實這個截圖是來自于官方對容器的介紹頁面,其實官方推薦我們對容器使用方式是說讓容器和虛擬機(jī)在一起,就是說把容器運行在虛擬機(jī)之內(nèi),這樣的話能讓應(yīng)用的部署和管理更加方便和高效。其實容器技術(shù)產(chǎn)生以后,真實的部署場景其實在國外是最先興起的,但是國外大部分百分之八九十的容器都是在云平臺上,所以說容器和虛擬機(jī)其實它更多的不是一個相互替代的技術(shù),它更多的是兩者之間結(jié)合來共同的為企業(yè)運行空間里面來支撐下一代的運營的基礎(chǔ)設(shè)施。這個是官方推薦的容器和虛擬機(jī)的一個最佳的組合方式。
  這邊我們可以簡單看一下跟容器相關(guān)的一個生態(tài)圈的情況。上午這個圖已經(jīng)見到了,這邊我和大家簡單再說一下。CNL是一個面向基金會的,他可以囊括的項目非常多,除了底層的基礎(chǔ)架構(gòu)這一層項目他不去管理之外,再往上包括移動、定義和部署這一層,這幾層有非常多的優(yōu)秀開源項目,這些開源項目一旦成熟了之后其實都有可能對他們進(jìn)行內(nèi)存管理。目前這個基金會托管項目一共有10個,這個都是相對比較多。運行時就是當(dāng)前運行時在還是應(yīng)用Docker來管理虛擬機(jī)和容器,從下一個版本開始,其實可能在一些里面運行時可能就會被代替COA,就是官方的標(biāo)準(zhǔn)容器。
  接下來我們看一下為什么要把OpenStack和Kubernetes結(jié)合在一起來構(gòu)建我們的容器的云平臺。首先OpenStack跟Kubernetes兩個為什么結(jié)合在一起?其實主要的一個原因就是說OpenStack它更多的是以基礎(chǔ)資源作為中心,其實比較擅長的是管理數(shù)據(jù)中心里面的像網(wǎng)絡(luò)設(shè)備、存儲設(shè)備,各種交換機(jī),其實更多比較擅長底層的基礎(chǔ)設(shè)施。Kubernetes相反,它更多的專注于應(yīng)用層的開發(fā),以應(yīng)用為中心,更多的是關(guān)注用戶更快速的把這個應(yīng)用從開發(fā)到部署上線,專注于創(chuàng)新型云原生應(yīng)用的交付和管理。
  我們把它們兩者結(jié)合起來,就是說使兩者之間1+1大于2,把兩者之間優(yōu)勢互補,就是底層的基礎(chǔ)設(shè)施管理交給OpenStack來做,上層的云原生應(yīng)用的交付和管理來做,兩者相互互補,加速應(yīng)用交付,助力業(yè)務(wù)創(chuàng)新。這是OpenStack和Kubernetes融合的一個最大的理念,就是它們兩者之間所擅長的時間并不一樣,但是關(guān)注點各有不同。
  接下來,我們會從OpenStack跟Kubernetes融合所具體的一些詳細(xì)的結(jié)構(gòu)來跟大家分享一下。
  第一部分就是說OpenStack和Kubernetes云平臺架構(gòu),最底層我們涉及到OpenStack和Kubernetes兩者之間的融合,所以最底層是以O(shè)penStack作為企業(yè)級的云平臺,來管理里面的計算資源、網(wǎng)絡(luò)資源、存儲資源等等,把這些資源形成池化,池化之后再把這些已經(jīng)虛擬化的資源交給一個核心的容器管理集群,這樣我們可以在OpenStack所管理出來的虛擬機(jī)或者是物理機(jī)之上來創(chuàng)建我們的容器集群,這樣就是說我們?nèi)萜骷焊鶲penStack這個環(huán)境是可以使用到統(tǒng)一到網(wǎng)絡(luò)和統(tǒng)一的存儲。統(tǒng)一的網(wǎng)絡(luò)在后面我們也會細(xì)說,統(tǒng)一的網(wǎng)絡(luò)就是說因為OpenStack網(wǎng)絡(luò)組件是OA,Kubernetes里面對應(yīng)的網(wǎng)絡(luò)組件也有很多的解決方案,如果沒有跟OpenStack這個平臺融合,它的網(wǎng)絡(luò)問題就是說在虛擬化再之上,再有一層OA網(wǎng)絡(luò),兩層OA會帶來網(wǎng)絡(luò)系統(tǒng)的損失。
  另外就是兩者之間相當(dāng)于是多層網(wǎng)絡(luò)底層網(wǎng)絡(luò)其實是一個黑盒,運維管理起來管理管理的話相對于比較復(fù)雜,所以我們讓Neutron作為一個統(tǒng)一網(wǎng)絡(luò)管理組件,這樣把Neutron管理的這些原有的比如說企業(yè)級的硬件設(shè)備交換機(jī),能很好的把網(wǎng)絡(luò)能力傳遞給容器平臺,能更好的讓我們的容器應(yīng)用用到這些傳統(tǒng)的網(wǎng)絡(luò)設(shè)備,這些網(wǎng)絡(luò)設(shè)備的支持包括后面存儲設(shè)備的支持,其實在容器生態(tài)領(lǐng)域是相對比較薄弱的環(huán)節(jié),這是統(tǒng)一網(wǎng)絡(luò)。
  統(tǒng)一存儲是說當(dāng)前存儲能力比較弱,沒有像Cinder一樣這么豐富的對接這么高端的商業(yè)存儲,容器里面基本沒有做到,很少有存儲廠商再為Kubernetes對應(yīng)一個存儲。如果我們企業(yè)里面已經(jīng)有商業(yè)化存儲,已經(jīng)有這樣一個存儲設(shè)備,同時我要把這個設(shè)備非常方便的給這個容器來用,這個時候基本上很難用到,我們把兩者結(jié)合起來,用Cinder作為統(tǒng)一的整個大平臺的管控中心,把存儲能給虛擬化的應(yīng)用來用,又能給容器來用,這個是OpenStack跟Kubernetes平臺結(jié)合的一個最大的特點,相比于運行于裸機(jī)或者是運行在公有云上或者私有云平臺上最大的一個亮點和特點,后面我們會有詳細(xì)的片子來跟大家分享。再網(wǎng)上就是我們的企業(yè)級容器云平臺包括鏡像管理、持續(xù)集成、持續(xù)部署、應(yīng)用管理、容器集群管理,后面有更詳細(xì)的講解,我們有統(tǒng)一的管理界面,然后也有統(tǒng)一的編排,還有統(tǒng)一的支持OpenStack虛擬化應(yīng)用和統(tǒng)一應(yīng)用中心,我們可以讓整個云平臺的租戶管理、監(jiān)控告警、日志管理都可以達(dá)到最高要求。企業(yè)級的OpenStack平臺也是計算機(jī)資源管理、網(wǎng)絡(luò)資源管理、存儲資源管理。
  這邊是容器云平臺功能模塊,后面有更詳細(xì)的我就不仔細(xì)講了。然后我們可以看一下技術(shù)棧,OpenStack大家比較清楚。Kubernetes跟OpenStack的差別是Kubernetes本身它只是容器編排,并沒有像OpenStack那么豐富,如果只用Kubernetes,其實你離把容器真正運用到生產(chǎn)上面還有很長的一段路要走,整個我們構(gòu)建容器云平臺的一個技術(shù)棧就是包括以Kubernetes為核心的一個容器調(diào)度和資源管理者的引擎。在核心的引擎之外我們集成了很多容器或者一些應(yīng)用一些技術(shù)組件,比如我們采用Harbor作為容器鏡像中心,目前還是采用Docker作為容器運行時,底層的SDN和SDS統(tǒng)一的用Neutron還有Cinder作為容器和OpenStack平臺的統(tǒng)一存儲和統(tǒng)一管理平臺。最底層的容器操作系統(tǒng)主要是跑容器化的Kubernetes應(yīng)有,可以更好更安全的來支撐容器化的應(yīng)用。
  再上面是功能模塊,這個分為幾大部分,DevOps、應(yīng)用管理和運維管理,這個不詳細(xì)說,下面會有詳細(xì)介紹。這是功能模塊所涉及到的一些技術(shù)棧。
  然后這邊是應(yīng)用管理的方式,大家都知道Kubernetes里面應(yīng)用管理的功能相對是比較弱的,它本身其實是沒有一個應(yīng)用管理的概念,F(xiàn)在是有像him應(yīng)用商店應(yīng)用管理在里面,但是應(yīng)用商店如果你從開發(fā)到運維上線的過程來說,對于Kubernetes來說涉及到交付和迭代比較多,復(fù)雜度也是比較高多,這樣的話我們是針對應(yīng)用商店比較難以使用的情況,我們封裝了一層簡單的應(yīng)用,這樣為了讓運維更加方便。第一我們可以從鏡像倉庫封裝我們自己的應(yīng)用來部署,同時支持編排模板,也就是說我們可以用可視化的方式把整個容器應(yīng)用編排成一個模板,這樣我們不需要更多的去編寫,也就是說我們可以通過托代系統(tǒng)方式來交互和維護(hù)這種應(yīng)用。同時我們可以在后續(xù)支持以應(yīng)用商店的方式來交互我們的云應(yīng)用,這是應(yīng)用管理的一些在原生基礎(chǔ)上的一些情況。
  這是是Kubernetes的關(guān)鍵特性,這邊列了幾個點第一個Autoscaling是說我們可以設(shè)置一個預(yù)值,可以彈性的把這個應(yīng)用進(jìn)行伸縮。第二個灰度升級,就是我們應(yīng)用如果上線比較頻繁的話,我們可以采用滾動更新的方式讓應(yīng)用同時在不斷線的情況下完全升級。服務(wù)發(fā)現(xiàn)是說我們?nèi)绻岩粋大的系統(tǒng)拆成一個小的移動的話,服務(wù)之間肯定要有一套完整的發(fā)言機(jī)制,因為容器的網(wǎng)絡(luò),容器的IP變化非常頻繁,因為不停地會創(chuàng)建項目,這樣就有一個比較完整的服務(wù)發(fā)現(xiàn)的機(jī)制,我們也是把Kube-DNS這一套插件引入到整個容器平臺,為各種應(yīng)用來提供服務(wù)方向的機(jī)制。
  后面的ConfigMap比較好理解,就是配置管理,這種配置在容器應(yīng)用里面也是通過對應(yīng)的組件來管理應(yīng)用。Secret也是涉及到比如數(shù)據(jù)庫要提供給其他的應(yīng)用來消費,這個時候你基本上是避免明文的傳輸,這個時候我們建立一個Secret來管理密碼,這種東西主要是私秘的對象管理。健康檢查就是一般容器如果規(guī)模上億之后我們很難對容器做單個容器的一個管理,這個時候?qū)θ萜鞯慕】禉z查比較重要,也就是說我們可以在應(yīng)用里面設(shè)置他健康檢查點,可以設(shè)置比如容器的某一個端口,判斷這個容器是不是在正常的提供服務(wù),如果不正常的話,會把不健康的容器進(jìn)行干掉,重新啟動比較健康的容器。負(fù)載均衡就是說容器在負(fù)載運行,這個時候如果沒有負(fù)載均衡的話。
  另外故障自愈因為系統(tǒng)組件本身就是恢復(fù)化的管理。持久化存儲就是說Kubernetes里面提供了一套持久化存儲的機(jī)制,我們很容易把這些組件接入上來為Kubernetes容器化存儲提供能力。集群高可用比較好理解。
  接下來我們可以看一下拿OpenStack和Kubernetes平臺兩者結(jié)合在一起能解決一個問題就是它支持兩層的彈性伸縮,我們知道如果僅僅是Kubernetes的話,它所涉及到的事情就是我們一旦是發(fā)現(xiàn)哪一個容器負(fù)載過高,我們可以把負(fù)個數(shù)量提升到3或者到5或者到10。如果我們對應(yīng)的Kubernetes平臺是運行在物理機(jī)上,峰值非常高的時候,所有的物理機(jī)負(fù)載壓力都非常高,這個時候你想要擴(kuò)一臺物理機(jī)到容器里面去是非常困難的事情,如果把OpenStack加上Kubernetes融合在一起,因為OpenStack加上Kubernetes是非常快的,我們可以做到兩層的彈性伸縮。
  所以說第一級的時候如果容器本身它的壓力負(fù)載過高我們可以對容器本身的應(yīng)用本身維度進(jìn)行彈性伸縮,這樣的話整個平臺變得非常靈活,能更好的來應(yīng)對高并發(fā)的比如說618,或者天貓雙十一都肯定需要這種雙層彈性支撐,來突然的面對這種高并發(fā)壓力。
  這邊可以看一下監(jiān)控告警,因為Kubernetes本身內(nèi)制有hmts,我們是把OpenStack加進(jìn)來之后,監(jiān)控告警相對比較完善。就是可以支持多維度的監(jiān)控,包括容器,容器從大的方面就是包括容器維度,包括容器節(jié)點維度,包括整個集群的狀態(tài)都可以監(jiān)控到。到容器里面,其實對于容器的CPU內(nèi)存,網(wǎng)絡(luò),其實都可以監(jiān)控到,節(jié)點維度也是這樣,它整個可以監(jiān)控不僅僅是容器維度進(jìn)行監(jiān)控,同時在容器節(jié)點本身,如果CPU、內(nèi)存處于壓力鍋大的話,也可以被監(jiān)控工具來監(jiān)控到。監(jiān)控到之后可以通過我們提前設(shè)置的這些預(yù)值,如果達(dá)到這個預(yù)值之后,可以進(jìn)行告警信息狀態(tài),同時讓管理人及時發(fā)現(xiàn)整個系統(tǒng)的負(fù)載壓力情況。同時告警信息可以對接企業(yè)里面的系統(tǒng),比如通過郵件或者是短信的方式通知到運維人員來及時處理系統(tǒng)的高壓情況,這個是監(jiān)控報警的特性。
  日志的搜集和存儲的功能點,Kubernetes里面只能看到單個戶的里面的容器,它并沒有對容器日志進(jìn)行歸類,日志統(tǒng)一檢索這些功能都沒有。如果一旦把應(yīng)用拆分了之后肯定涉及到很多應(yīng)用同時在運行,如果我們只是單個來做其實并沒有辦法很好的幫我們定位和解決問題。這時候就需要有一個日志搜集和管理系統(tǒng)來幫我們管理這些問題,我們也是基于整個方案來實現(xiàn)這個日志搜集和管理的功能,這就是日志管理。
  接下來看一下網(wǎng)絡(luò),前面我們提到網(wǎng)絡(luò)其實是OpenStack和Kubernetes平臺融合的時候最重要的一個特性之一。我們看到現(xiàn)在的容器網(wǎng)絡(luò)方案存在的一些問題,從成熟度來講與OpenStack中生產(chǎn)級別的Neutron網(wǎng)絡(luò)相比,現(xiàn)有的容器網(wǎng)絡(luò)解決方案,如Flannel、Veave等的成熟度還有一定欠缺,特別是國內(nèi)容器剛剛興起,大家普遍的大規(guī)模的使用還不是太多,如果用的話其實也是對容器現(xiàn)有的方案有一些改造,沒有多少是直接用容器里面的某個方案的。所以從成熟度來說沒有OpenStack這種平臺成熟。
  第二就是嵌套Overlay網(wǎng)絡(luò),性能損耗、延遲、管理、調(diào)試復(fù)雜度。這個是現(xiàn)有容器一些問題,我們采用Neutron統(tǒng)一管理容器平臺和OpenStack平臺的網(wǎng)絡(luò),網(wǎng)絡(luò)架構(gòu)扁平化實現(xiàn)容器與容器之間,以及容器與虛擬機(jī)之間的直連,引入高級網(wǎng)絡(luò)特性,可將Neutron的高級特性引入容器網(wǎng)絡(luò)中,諸如安全組、FloatingIP、QoS、LBaaS、FWaaS、VPNaaS等,來更好的管理容器的網(wǎng)絡(luò)。這邊是容器網(wǎng)絡(luò)的一些存在的問題和我們的一些優(yōu)勢。
  這邊是具體的容器網(wǎng)絡(luò)和OpenStack網(wǎng)絡(luò)兩者之間的一個交匯架構(gòu)。它最大的思路就是說我們以Kuryr作為控制器,這個時候Kuryr對應(yīng)的從Neutron這邊對應(yīng)Port、Network,這樣的話就是達(dá)到OpenStack和Kubernetes兩者之間的網(wǎng)絡(luò)組件的流通。
  我們接下來再看一下Neutron LB作為容器外部負(fù)載均衡器,Neutron LB作為容器集群外部負(fù)載均衡器支持L4/L7層負(fù)載均衡、支持應(yīng)用會話保持、自動鍵控隔離不可用節(jié)點、支持資源池動態(tài)擴(kuò)縮。
  這個是OpenStack和Kubernetes結(jié)合非常重要的一個優(yōu)勢,或者說我們可以把企業(yè)里面已經(jīng)有的開源式分布式存儲,或者是第三方雙向存儲,比如說EMC的存儲設(shè)備,IEM的存儲設(shè)備,這些存儲設(shè)備在QoS里面沒有很好的驅(qū)動去管理的,把OpenStack平臺引進(jìn)進(jìn)來之后,就可以利用豐富的移動存儲進(jìn)行虛擬化,再把這個存儲提供給容器化的應(yīng)用,這邊是兩者之間融合存儲的一個優(yōu)勢。
  另外可以看一下多租戶隔離問題,在OpenStack里面多租戶隔離特性增強容器安全隔離性,每個OpenStack租戶可單獨創(chuàng)建并管理Kubernetes集群。也就是說我們的應(yīng)用是很容易的就能相互干擾,我們利用OpenStack和Kubernetes的特性,每個租戶里面都有一個容器集群,這樣的話能針對同一個業(yè)務(wù),讓每一個業(yè)務(wù)能避免相互之間的干擾。
  最后一部分可以看一下典型的應(yīng)用場景,這個可能大家也比較熟悉。第一個就是說像6·18,雙十一高流量,同時有比較大峰值的波動的話,通常比較適合這種輕量級的產(chǎn)品。像京東,大家也可以看到京東的分享。這邊就是很好的支持微服務(wù)的改造,這個也是組大的一個使用場景。最后一個收益就是說我們除了這個容器,我們?nèi)诤霞軜?gòu)可以帶來異構(gòu)平臺統(tǒng)一管理、資源統(tǒng)一調(diào)度、提升安全性,這個是我們所帶來的一些優(yōu)勢。今天的分享就到這邊,謝謝大家!

專題