- OpenShift在企業(yè)中的實踐:PaaS DevOps微服務(第2版)
- 魏新宇 郭躍軍
- 1661字
- 2021-11-05 10:17:12
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的各部分架構。
- 編程卓越之道(卷3):軟件工程化
- MATLAB圖像處理超級學習手冊
- Building a Recommendation Engine with Scala
- 零基礎學Java(第4版)
- Java Web開發(fā)技術教程
- 數據結構(C語言)
- C語言程序設計學習指導與習題解答
- Getting Started with Laravel 4
- SQL Server 2008中文版項目教程(第3版)
- Learning Image Processing with OpenCV
- Xamarin Cross-Platform Development Cookbook
- VMware vSphere Design Essentials
- C++面向對象程序設計
- Java EE互聯網輕量級框架整合開發(fā):SSM+Redis+Spring微服務(上下冊)
- Azure for Architects