企業(yè)級(jí)容器平臺(tái)OpenShift介紹

隨著移動(dòng)互聯(lián)網(wǎng)生態(tài)的興起,傳統(tǒng)銀行面臨跨界競(jìng)爭(zhēng),在電子商務(wù)支付裆熙、消費(fèi)金融、商業(yè)融資的新的業(yè)務(wù)場(chǎng)景下面臨嚴(yán)峻的挑戰(zhàn)括饶,數(shù)字化轉(zhuǎn)型的需求日益迫切。在這場(chǎng)技術(shù)轉(zhuǎn)型的浪潮下来涨,各大銀行積極推進(jìn)科技改革图焰,擁抱云計(jì)算,以適應(yīng)市場(chǎng)不斷的變化蹦掐。隨著容器技術(shù)的成熟技羔,一個(gè)以Kubernetes容器編排引擎為核心的生態(tài)圈已經(jīng)形成,互聯(lián)網(wǎng)卧抗、金融藤滥、汽車(chē)等各企業(yè)都積極投入容器技術(shù)的應(yīng)用中。容器云平臺(tái)的建設(shè)已經(jīng)被認(rèn)為是云計(jì)算落地的一種快捷的方式社裆。
說(shuō)到容器云平臺(tái)拙绊,就不得不提當(dāng)前容器調(diào)度與編排的事實(shí)標(biāo)準(zhǔn)——Kubernetes。Kubernetes通過(guò)定義基礎(chǔ)資源(容器泳秀、存儲(chǔ)标沪、網(wǎng)絡(luò))的協(xié)議接口,為底層基礎(chǔ)設(shè)施提供了統(tǒng)一的管理方式嗜傅。研發(fā)人員通過(guò)聲明的方式定義資源編排文件谨娜,Kubernetes便通過(guò)自身組件自動(dòng)完成資源的申請(qǐng)與分配,快速實(shí)現(xiàn)應(yīng)用的部署磺陡。Kubernetes為容器的管理調(diào)度,應(yīng)用的編排提供了便利,它無(wú)所不能币他,但是在建設(shè)企業(yè)級(jí)容器平臺(tái)時(shí)坞靶,我們需要在以Kubernetes為核心的前提下,整合其他組件蝴悉,例如網(wǎng)絡(luò)插件彰阴、應(yīng)用訪(fǎng)問(wèn)入口、存儲(chǔ)實(shí)現(xiàn)拍冠、監(jiān)控尿这、日志、鏡像倉(cāng)庫(kù)等庆杜。如圖一所示射众。OpenShift正是基于Kubernetes實(shí)現(xiàn)的一個(gè)企業(yè)開(kāi)源容器平臺(tái)。

圖一 企業(yè)級(jí)容器平臺(tái)架構(gòu)

OpenShift發(fā)展歷史

OpenShift是由RedHat推出的企業(yè)級(jí)Kubernetes平臺(tái)晃财,它是從OKD項(xiàng)目派生的下游容器編排技術(shù)叨橱。2019 年 9 月 IHS Markit Technology 統(tǒng)計(jì)了商業(yè)容器軟件市場(chǎng)收入的排名,并發(fā)布了相關(guān)的調(diào)查報(bào)告断盛。報(bào)告中顯示紅帽份額為 44%罗洗,排在第1位,超過(guò)了排名第2 - 第5公司的總和钢猛。從該報(bào)告的結(jié)果可以看出伙菜,在全球容器市場(chǎng)中,RedHat占有著領(lǐng)先的優(yōu)勢(shì)命迈,而RedHat企業(yè)級(jí)容器產(chǎn)品便是OpenShift贩绕。

目前OpenShift最新版本為4.5,生產(chǎn)上使用最多的是3.11版本躺翻,也是3系列的最后一個(gè)版本丧叽。大家都知道OpenShift是基于Kubernetes實(shí)現(xiàn)的,但很多人并不清楚OpenShift其實(shí)早于Kubernetes誕生公你。整個(gè)OpenShift的發(fā)展過(guò)程中經(jīng)歷了兩次重大的變革踊淳,如圖二所示。

圖二 OpenShift發(fā)展史

OpenShift發(fā)布于2011年陕靠,當(dāng)時(shí)Docker還未出現(xiàn)迂尝,容器技術(shù)并沒(méi)有像現(xiàn)在這么普及,也沒(méi)有形成標(biāo)準(zhǔn)剪芥,而是一些大廠(chǎng)專(zhuān)用的技術(shù)垄开,各家在容器運(yùn)行時(shí)與容器編排引擎都各成一套,RedHat也不例外税肪。OpenShift在v1與v2版本中一直使用的是RedHat自己開(kāi)發(fā)的容器運(yùn)行時(shí)與容器編排引擎溉躲。隨著2013年Docker的問(wèn)世榜田,RedHat立刻意識(shí)到了該技術(shù)將帶來(lái)的革命,隨即與Docker展開(kāi)合作锻梳,確定了以Docker作為下一代OpenShift容器運(yùn)行時(shí)箭券。在2014年Kubernetes的發(fā)布,RedHat經(jīng)過(guò)調(diào)研疑枯,便很快與Google展開(kāi)合作辩块,確認(rèn)了以Kubernetes作為下一代OpenShift的編排引擎。后來(lái)的事實(shí)證明RedHat做的這兩個(gè)選擇都非常明智荆永。

2015年OpenShift迎來(lái)了第一個(gè)重大的變革废亭,OpenShift v3發(fā)布。RedHat棄用了原先自己的“Gear”和“Cartridge”技術(shù)具钥,以Docker豆村、Kubernetes為核心進(jìn)行全新重構(gòu),并且站在開(kāi)發(fā)者的角度氓拼,對(duì)產(chǎn)品體驗(yàn)進(jìn)行了全面的升級(jí)與優(yōu)化你画。OpenShift 3很快得到了開(kāi)發(fā)者的認(rèn)可,取得了巨大的成功桃漾,直到今天使用最多的版本仍然是v3版本坏匪。

OpenShift本可以沿著v3的路線(xiàn)不斷升級(jí)完善,就能夠保持自己在容器PaaS領(lǐng)域的優(yōu)勢(shì)撬统,然而它的變革并未停止适滓。2018年紅帽收購(gòu)了容器領(lǐng)域的另一巨頭CoreOS,容器領(lǐng)域的兩只領(lǐng)頭羊合二為一恋追,他們將各自積累多年的容器技術(shù)進(jìn)行全面融合凭迹,通過(guò)Operator實(shí)現(xiàn)應(yīng)用全生命周期的自動(dòng)化管理,對(duì)OpenShift 3版本進(jìn)行全面的改造苦囱,推出了功能更加豐富嗅绸,更加自動(dòng)化的4版本,這里不得不佩服紅帽的魄力撕彤。

OpenShift對(duì)Kubernetes的增強(qiáng)

OpenShift與Kubernetes的關(guān)系類(lèi)似于Linux與Linux發(fā)行版(Rhel鱼鸠、Ubuntu等)的關(guān)系。OpenShift以Kubernetes為核心羹铅,實(shí)現(xiàn)相關(guān)的資源協(xié)議接口蚀狰,對(duì)其功能進(jìn)行增強(qiáng),同時(shí)整合其它組件职员,使其成為企業(yè)級(jí)容器平臺(tái)麻蹋。
OpenShift提供穩(wěn)定的容器、網(wǎng)絡(luò)焊切、存儲(chǔ)等資源協(xié)議接口的實(shí)現(xiàn)扮授。

  • 以Docker作為默認(rèn)的容器運(yùn)行時(shí)芳室,對(duì)接Kubernetes的容器運(yùn)行時(shí)接口(CRI),當(dāng)然OpenShift也支持其它的容器運(yùn)行時(shí)刹勃,比如CRI-O渤愁。
  • OpenShift默認(rèn)采用OVS作為容器平臺(tái)的網(wǎng)絡(luò)插件,對(duì)接Kubernetes的容器網(wǎng)絡(luò)接口(CNI)深夯,實(shí)現(xiàn)容器跨主機(jī)的網(wǎng)絡(luò)通信及管理,同時(shí)OpenShift也支持其它的網(wǎng)絡(luò)插件诺苹,比如Calico咕晋。
  • 存儲(chǔ)類(lèi)型方面,除了Kubernetes默認(rèn)支持的RBD收奔、NFS掌呜、EBS、GlusterFS等坪哄,OpenShift支持更多的存儲(chǔ)類(lèi)型质蕉,如Local、iSCSI等翩肌。
    OpenShift對(duì)原生Kubernetes的安全性及功能進(jìn)行了增強(qiáng)模暗。
  • OpenShift最早實(shí)現(xiàn)了集群的多租戶(hù)管理,比如RBAC念祭、Qouta兑宇、Namespace等,這些能力在Kubernetes的后期版本中才集成粱坤。
  • 為了提高安全性隶糕,OpenShift開(kāi)發(fā)了安全上下文約束(SCC),控制容器運(yùn)行時(shí)默認(rèn)使用最小權(quán)限站玄。
  • 為了方便研發(fā)人員的持續(xù)構(gòu)建與部署枚驻,OpenShift開(kāi)發(fā)了DeploymentConfig及BuildConfig資源,它們?cè)贙ubernetes的應(yīng)用編排資源的基礎(chǔ)上添加了更多的控制能力株旷,比如自動(dòng)觸發(fā)再登、部署策略等。
  • OpenShift實(shí)現(xiàn)了Route資源對(duì)象灾常,為集群提供了統(tǒng)一的網(wǎng)絡(luò)入口霎冯,方便集群中的應(yīng)用對(duì)外提供服務(wù)。受到Route的啟發(fā)钞瀑,Kubernetes目前也開(kāi)發(fā)類(lèi)似功能的實(shí)現(xiàn)Ingress沈撞。
  • OpenShift開(kāi)發(fā)了集群內(nèi)部鏡像倉(cāng)庫(kù),并且提供了與應(yīng)用資源協(xié)調(diào)調(diào)用的能力雕什。
    OpenShift整合了更多的組件缠俺,增強(qiáng)了集群的穩(wěn)定性显晶。
  • 基于Prometheus、Grafana壹士、AlertManager為集群提供了整體監(jiān)控與告警的方案磷雇,包括集群核心組件的可用性,容器資源使用率等躏救,同時(shí)也提供了自定義監(jiān)控項(xiàng)的擴(kuò)展能力唯笙。
  • 基于EFK組件,為集群組件及應(yīng)用提供了整體的日志統(tǒng)一管理方案盒使。
    另外還需要提的是崩掘,OpenShift為開(kāi)發(fā)者和集群管理者提供了一個(gè)非常容易使用的控制臺(tái),通過(guò)控制臺(tái)可以方便完成絕大部分的使用與管理少办。
    從上面可以看出苞慢,OpenShift的能力對(duì)Kubernetes較全面的增強(qiáng),同時(shí)兩者又是相輔相成英妓,OpenShift基于Kubernetes實(shí)現(xiàn)挽放,也同樣反饋與驅(qū)動(dòng)Kubernetes前進(jìn)。

OpenShift的不足

OpenShift提供了一個(gè)開(kāi)箱即用的單容器高可用容器PaaS平臺(tái)蔓纠,它可以滿(mǎn)足絕大部分企業(yè)容器應(yīng)用部署的需求辑畦,為企業(yè)能夠快速構(gòu)建自己的云計(jì)算服務(wù)。但是大型企業(yè)容器平臺(tái)建設(shè)需要考慮的情況往往會(huì)更復(fù)雜贺纲。

  • 應(yīng)用的部署體驗(yàn)夠用了嗎航闺?OpenShift提供了單平臺(tái)web控制臺(tái),它的可定制化能力較弱猴誊,很難對(duì)其進(jìn)行擴(kuò)展潦刃。
  • 多中心、多集群管理有沒(méi)有懈叹?OpenShift更多的是對(duì)單集群的管理乖杠,缺乏多集群管理的能力。
  • 生產(chǎn)級(jí)別的PaaS服務(wù)有沒(méi)有澄成?OpenShift提供了應(yīng)用商店胧洒,更多的并沒(méi)有達(dá)到生產(chǎn)級(jí)別的要求,只能在開(kāi)發(fā)測(cè)試環(huán)境試用墨状。
  • 與企業(yè)流程的深度融合有沒(méi)有卫漫?如果需要與企業(yè)自身系統(tǒng)進(jìn)行深度融合,需要對(duì)OpenShift控制臺(tái)進(jìn)行深度化定制肾砂,往往我們還是需要獨(dú)立開(kāi)發(fā)門(mén)戶(hù)網(wǎng)站列赎。
  • 監(jiān)控集群及應(yīng)用是否可以自定制?OpenShift集群提供了整體監(jiān)控與告警的產(chǎn)品化方案镐确,其監(jiān)控展示配置是固化的包吝,無(wú)法自定義自己的監(jiān)控展示頁(yè)面饼煞。
  • 日志方案是否足夠了?在日志方案上诗越,OpenShift能夠滿(mǎn)足一般吞吐量的日志收集與管理块促,隨著集群規(guī)模的壯大,應(yīng)用日志并發(fā)數(shù)增多即硼,OpenShift日志系統(tǒng)會(huì)受到性能瓶頸。
  • 集群的網(wǎng)絡(luò)是否有局限性?OpenShift默認(rèn)采用ovs作為容器平臺(tái)的網(wǎng)絡(luò)插件祖乳,它是一種overlay網(wǎng)絡(luò)作媚,容器間訪(fǎng)問(wèn)需要通過(guò)封包解包级解,這在一定程度上降低了網(wǎng)絡(luò)性能,同時(shí)對(duì)于集群內(nèi)外服務(wù)的網(wǎng)絡(luò)控制也增加了一定的難度拼苍。
    另外各企業(yè)有自己的審批流程、開(kāi)發(fā)流程立莉、運(yùn)維規(guī)范、更高的高可用要求皮仁、更高的性能要求呜达、更細(xì)化的安全要求、自主可控等。而OpenShift產(chǎn)品化程度過(guò)高,降低了其自身的靈活性,企業(yè)對(duì)其定制能力被削弱哀卫。所以各大企業(yè)即使引入了OpenShift平臺(tái)撬槽,仍然需要在它的基礎(chǔ)上建設(shè)自己的容器平臺(tái)門(mén)戶(hù)共啃,并且相關(guān)的技術(shù)方案也需要獨(dú)立設(shè)計(jì)。

OpenShift 4——全新一代OpenShift

2019年5月暂题,在完成收購(gòu)CoreOS的15個(gè)月后移剪,RedHat正式發(fā)布了OpenShift 4,將其定位為面向混合云的通用操作系統(tǒng)薪者,如圖三所示纵苛。它雖然依然以Kubernetes為核心,但是整個(gè)平臺(tái)已經(jīng)脫胎換骨,從功能攻人,架構(gòu)取试,到實(shí)現(xiàn)都有非常大的改變。其中最大的變化是在底層的操作系統(tǒng)及應(yīng)用服務(wù)的管理方式上。

  • 采用更輕量、更安全沉唠、更緊湊的CoreOS操作系統(tǒng)捻撑,容器運(yùn)行時(shí)也使用更輕量的CRI-O代替了Docker。CoreOS是一個(gè)基于Linux內(nèi)核的輕量級(jí)操作系統(tǒng)骗村,專(zhuān)注于自動(dòng)化、輕松部署、安全铺根、可靠及可擴(kuò)縮性,它可以通過(guò)配置文件來(lái)定義底層操作系統(tǒng)乔宿,實(shí)現(xiàn)了操作系統(tǒng)的標(biāo)準(zhǔn)化位迂。
  • 全面擁抱Operator,實(shí)現(xiàn)應(yīng)用服務(wù)自動(dòng)部署详瑞、自動(dòng)運(yùn)維掂林、擴(kuò)展及故障轉(zhuǎn)移,極大程序簡(jiǎn)化了應(yīng)用的管理坝橡,同時(shí)保證了不同的集群下應(yīng)用都是完全相同的泻帮,無(wú)論是內(nèi)部環(huán)境還是公有環(huán)境,實(shí)現(xiàn)了應(yīng)用管理的標(biāo)準(zhǔn)化计寇。OpenShift集群的核心組件锣杂,運(yùn)維組件,DevOps工具鏈等都實(shí)現(xiàn)了Operator化番宁。
    OpenShift 4自身的內(nèi)功修煉也不止這些:Serverless的支持元莫、服務(wù)網(wǎng)格技術(shù)的整合、多網(wǎng)絡(luò)平面的支持蝶押、更多持續(xù)集成與持續(xù)交付功能的拓展等踱蠢,為應(yīng)用的全生命周期打造一個(gè)完善的生態(tài)系統(tǒng)。
    除了自身的功能外棋电,OpenShift 4與各種云平臺(tái)的集成方面下足了功夫茎截,支持了AWS、Azure Cloud赶盔、VMware vsphere稼虎、IBM Cloud等,甚至將會(huì)支持與Aliyun的集成招刨。這也解釋了為什么它的定位是面向混合云的通用操作系統(tǒng)霎俩。
    雖然當(dāng)前OpenShift 4還是一個(gè)較新的版本哀军,穩(wěn)定性還需要更多的生產(chǎn)實(shí)踐進(jìn)行驗(yàn)證。但是相信在不久的將來(lái)OpenShift 4會(huì)接過(guò)V3的大旗打却,成為生產(chǎn)上使用最為廣泛的容器平臺(tái)杉适。
圖三 OpenShift 4展示圖

總結(jié)

OpenShift在過(guò)去幾年的不斷創(chuàng)新與探索,敢于自我革命柳击,成就了現(xiàn)在企業(yè)級(jí)容器平臺(tái)的江湖地位猿推。雖然OpenShift的產(chǎn)品化降低了它的靈活性,但是它對(duì)原生Kubernetes在安全性捌肴、穩(wěn)定性等多個(gè)方面進(jìn)行了增強(qiáng)蹬叭。在容器平臺(tái)建設(shè)過(guò)程中,我們需要結(jié)合自身的情況状知,綜合考慮秽五,進(jìn)行多維度的評(píng)估。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末饥悴,一起剝皮案震驚了整個(gè)濱河市坦喘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌西设,老刑警劉巖瓣铣,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異贷揽,居然都是意外死亡棠笑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)禽绪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蓖救,“玉大人,你說(shuō)我怎么就攤上這事丐一。” “怎么了淹冰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵库车,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我樱拴,道長(zhǎng)柠衍,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任晶乔,我火速辦了婚禮珍坊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘正罢。我一直安慰自己阵漏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著履怯,像睡著了一般回还。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叹洲,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天柠硕,我揣著相機(jī)與錄音,去河邊找鬼运提。 笑死蝗柔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的民泵。 我是一名探鬼主播癣丧,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼洪灯!你這毒婦竟也來(lái)了坎缭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤签钩,失蹤者是張志新(化名)和其女友劉穎掏呼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體铅檩,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡憎夷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昧旨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拾给。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖兔沃,靈堂內(nèi)的尸體忽然破棺而出蒋得,到底是詐尸還是另有隱情,我是刑警寧澤乒疏,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布额衙,位于F島的核電站,受9級(jí)特大地震影響怕吴,放射性物質(zhì)發(fā)生泄漏窍侧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一转绷、第九天 我趴在偏房一處隱蔽的房頂上張望伟件。 院中可真熱鬧,春花似錦议经、人聲如沸斧账。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)其骄。三九已至亏镰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拯爽,已是汗流浹背索抓。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留毯炮,地道東北人逼肯。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像桃煎,于是被迫代替她去往敵國(guó)和親篮幢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355