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

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

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

1.OpenShift實現了與CI/CD工具的完美集成

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CoreOS在Prometheus社區(qū)建立了領導地位,這為紅帽帶來了寶貴的專業(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作為集群組件和容器應用的部署方式。

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

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

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

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

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

圖2-5 OperatorHub應用概覽

4.OpenShift實現了對IaaS資源的管理

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

5.OpenShift實現集群實時更新

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

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

6.OpenShift通過Istio實現新一代服微服務架構

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

7.OpenShift實現Serverless

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

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

主站蜘蛛池模板: 武定县| 临安市| 郴州市| 蓬溪县| 枣强县| 呼和浩特市| 马关县| 浪卡子县| 波密县| 汝州市| 都昌县| 五河县| 文化| 沙湾县| 武定县| 樟树市| 额敏县| 蕲春县| 中江县| 永州市| 清河县| 德钦县| 苏州市| 三穗县| 新沂市| 天全县| 新晃| 洪湖市| 囊谦县| 榆树市| 新昌县| 罗山县| 阿拉尔市| 凤翔县| 武安市| 诸暨市| 长丰县| 惠东县| 曲靖市| 临城县| 富蕴县|