官术网_书友最值得收藏!

2.1.4 OpenShift對Kubernetes生態(tài)的延伸

OpenShift對Kubernetes生態(tài)的延伸主要體現(xiàn)在七個方面,我們接下來分別介紹這七個方面。

1.OpenShift實現(xiàn)了與CI/CD工具的完美集成

目前OpenShift Pipeline默認使用Tekton。Tekton是一個功能強大且靈活的Kubernetes原生開源框架,用于創(chuàng)建持續(xù)集成和交付(CI/CD)。通過抽象底層實現(xiàn)細節(jié),用戶可以跨多云平臺和本地系統(tǒng)進行構(gòu)建、測試和部署。

Tekton將許多Kubernetes自定義資源(CR)定義為構(gòu)建塊,這些自定義資源是Kubernetes的擴展,允許用戶使用Kubectl和其他Kubernetes工具創(chuàng)建這些對象并與之交互。

雖然OpenShift默認使用Tekton實現(xiàn)Pipeline,但OpenShift會繼續(xù)發(fā)布并支持與Jenkins的集成。OpenShift與Jenkins的集成,體現(xiàn)在以下幾個方面:

·統(tǒng)一認證:OpenShift和部署在OpenShift中的Jenkins實現(xiàn)了SSO。根據(jù)OpenShift用戶在Project中的角色,可以自動映射與之匹配的Jenkins角色(view、edit或admin)。

·OpenShift提供四個版本的Jenkins:默認已經(jīng)提供了一鍵部署Jenkins的四個模板,如圖2-4所示。

圖2-4 四種類型的Jenkins模板

·自動同步Secret:在同一個項目中,OpenShift的Secret與Jenkins憑證自動同步,以便Jenkins可以使用用戶名/密碼、SSH密鑰或Secret文本,而不必在Jenkins中單獨創(chuàng)建。

·Pipeline的集成:可以在Jenkins中定義Pipeline來調(diào)用OpenShift API,完成一些應(yīng)用構(gòu)建和發(fā)布等操作。

2.OpenShift實現(xiàn)開發(fā)運維一體化

在Kubernetes剛發(fā)布時,紅帽主要想借助Kubernetes構(gòu)建企業(yè)級開發(fā)平臺。為了全面提升OpenShift的運維能力,紅帽收購CoreOS,將其中優(yōu)秀的運維工具納入OpenShift中。CoreOS麾下能大幅提升OpenShift運維能力的組件有:

·Tectonic:企業(yè)級Kubernetes平臺。

·Container Linux:適合運行容器負載的Linux操作系統(tǒng)CoreOS。

·Quay:企業(yè)級鏡像倉庫。

·Operator:有狀態(tài)應(yīng)用的生命周期管理工具。

·Prometheus:容器監(jiān)控平臺。

CoreOS在Prometheus社區(qū)建立了領(lǐng)導(dǎo)地位,這為紅帽帶來了寶貴的專業(yè)知識。紅帽O(jiān)penShift也逐步與CoreOS完成整合。

·在監(jiān)控方面,Prometheus成為默認的監(jiān)控工具,提供了原生的Prometheus監(jiān)控、警報和集成的Grafana儀表板。

·在運維管理方面,OpenShift將CoreOS Tectonic控制臺的功能完全融入OpenShift中,提供運維能力很強的Cluster Console。

·操作系統(tǒng)CoreOS作為OpenShift的宿主機操作系統(tǒng)。

·將Operator作為集群組件和容器應(yīng)用的部署方式。

·Quay正在與OpenShift進行最后的集成。后面OpenShift的Docker Registry可以由Quay替代。

3.OpenShift實現(xiàn)有狀態(tài)應(yīng)用的全生命周期管理

CoreOS推出了在Kubernetes上管理應(yīng)用的新方——perator。Operator擴展了Kubernetes API,它可以配置和管理復(fù)雜的、有狀態(tài)應(yīng)用程序的實例。如今,Operator能夠管理的應(yīng)用類型越來越多。

Operator為什么這么重要?這是因為我們在Kubernetes上運行復(fù)雜的有狀態(tài)應(yīng)用程序(如數(shù)據(jù)庫、中間件和其他服務(wù))通常需要特定于該應(yīng)用領(lǐng)域的知識。Operator允許將領(lǐng)域知識編程到代碼中,以便使每個應(yīng)用能夠自我管理,主要利用Kubernetes API和聲明性管理功能來實現(xiàn)這一目標。Operator可以實現(xiàn)跨混合云的應(yīng)用生命周期統(tǒng)一管理。

OpenShift提供一個非常方便的“容器應(yīng)用商店”:OperatorHub。OperatorHub提供了一個Web界面,用于發(fā)現(xiàn)和發(fā)布遵循Operator Framework標準的Operator。開源Operator和商業(yè)Operator都可以發(fā)布到OperatorHub。截至目前,OperatorHub中的應(yīng)用數(shù)量超過200個,如圖2-5所示。

圖2-5 OperatorHub應(yīng)用概覽

4.OpenShift實現(xiàn)了對IaaS資源的管理

Kubernetes雖然對運行在其上的容器化應(yīng)用有較強的管理能力,但Kubernetes缺乏對Kubernetes下的基礎(chǔ)設(shè)施進行管理的能力。為了實現(xiàn)PaaS對基礎(chǔ)架構(gòu)的納管,OpenShift引入Machine API,通過配置MachineSet實現(xiàn)IaaS和PaaS統(tǒng)一管理。也就是說,當OpenShift集群性能不足的時候,自動將基礎(chǔ)架構(gòu)資源加入OpenShift集群中。目前OpenShift實現(xiàn)了對AWS EC2、微軟Azure、Red Hat OpenStack等云平臺的納管。

5.OpenShift實現(xiàn)集群實時更新

安裝Kubernetes集群后,一個重大挑戰(zhàn)是讓它們保持最新狀態(tài)。CoreOS率先推出了Tectonic和Container Linux的“over the air updates”概念。通過這個技術(shù),客戶能夠?qū)penShift集群連接到紅帽官網(wǎng),這樣客戶就可以收到有關(guān)新版本和關(guān)鍵更新的自動通知。如果客戶的OpenShift集群不能連接紅帽官網(wǎng),客戶仍然可以從本地鏡像倉庫下載和安裝相同的更新。

OpenShift的主機操作系統(tǒng)基于CoreOS,將提供平滑升級的能力。

6.OpenShift通過Istio實現(xiàn)新一代服微服務(wù)架構(gòu)

紅帽為上游Istio社區(qū)做出貢獻,并在OpenShift上發(fā)布企業(yè)級Istio。Istio通過Envoy為微服務(wù)添加輕量級分布式代理來管理對服務(wù)的請求。在OpenShift 4.2上的Red Hat Istio已經(jīng)正式發(fā)布,Istio也將是本書著重介紹的一部分內(nèi)容。

7.OpenShift實現(xiàn)Serverless

Knative是一種支持Kubernetes的Serverless架構(gòu)。紅帽是Knative開源項目的貢獻者,紅帽希望基于OpenShift實現(xiàn)開放的混合無服務(wù)器功能(FaaS)。如今,AWS Lambda等FaaS解決方案通常僅限于單一云環(huán)境。紅帽的目標是與Knative、OpenWhisk社區(qū)以及其他的FaaS提供商合作,為開發(fā)人員在混合的多云基礎(chǔ)架構(gòu)中構(gòu)建應(yīng)用程序提供無服務(wù)器功能。

在介紹了OpenShift與Kubernetes之間的關(guān)系后,接下來將從企業(yè)使用的視角逐步展開說明OpenShift的各部分架構(gòu)。

主站蜘蛛池模板: 德庆县| 海口市| 惠州市| 赫章县| 新津县| 洪江市| 安泽县| 承德市| 郁南县| 明水县| 吴忠市| 贺州市| 霍州市| 临泉县| 三江| 惠东县| 敦煌市| 顺昌县| 宁南县| 沧州市| 盘山县| 日照市| 祁东县| 嘉定区| 蚌埠市| 广丰县| 新干县| 定远县| 闵行区| 塘沽区| 响水县| 保亭| 安塞县| 长武县| 永善县| 罗甸县| 徐水县| 石景山区| 四川省| 广德县| 聂拉木县|