解讀OpenShift的邏輯架構(gòu)和技術(shù)架構(gòu)
一 、OpenShift的邏輯架構(gòu)
OpenShift的邏輯架構(gòu)圖如圖2-6所示。
▲圖2-6 OpenShift邏輯架構(gòu)
圖2-6中的關(guān)鍵組件介紹如下。
- 底層基礎(chǔ)設(shè)施:OpenShift可以運行在公有云(AWS、Azure、Google等)、私有云(OpenStack)、虛擬機(vSphere、RHV、紅帽KVM)、X86、IBM Power/Z服務(wù)器上。
- 控制平面(Control Plane):負責(zé)整個集群的調(diào)度和管理,如認證授權(quán)、容器調(diào)度、應(yīng)用管理、服務(wù)注冊發(fā)現(xiàn)等??刂乒?jié)點需要運行在CoreOS系統(tǒng)上。
- 計算節(jié)點(Worker):提供在OpenShift上運行容器應(yīng)用所需的計算資源,如Tomcat、MongoDB等??梢赃x擇根據(jù)運行的容器類型將節(jié)點進一步細分為Infra節(jié)點和App節(jié)點,Infra節(jié)點上運行集群的附加組件(如路由器、日志、監(jiān)控等),App節(jié)點上運行真實的業(yè)務(wù)應(yīng)用容器。計算節(jié)點可以運行在CoreOS或RHEL上。
- Kubernetes層:OpenShift會集成次新版本的Kubernetes,通過Kubernetes實現(xiàn)核心功能。
- 應(yīng)用生命周期管理層:OpenShift通過Jenkins或Teckton實現(xiàn)應(yīng)用的CI/CD。
- Service Catalog層:提供多種預(yù)安裝的應(yīng)用服務(wù),如Redis、OpenJDK等,實現(xiàn)基礎(chǔ)服務(wù)的快速創(chuàng)建和管理,實現(xiàn)自服務(wù)。
- 容器層:OpenShift上可以運行多種編程語言運行時、數(shù)據(jù)庫和其他軟件包的認證容器鏡像。
二、OpenShift的技術(shù)架構(gòu)
了解OpenShift的邏輯架構(gòu)之后,接下來講解在OpenShift中使用了哪些關(guān)鍵性技術(shù)。OpenShift的技術(shù)架構(gòu)如圖2-7所示。
▲圖2-7 OpenShift的技術(shù)架構(gòu)
按照層級,我們自下往上進行介紹。
- OpenShift的基礎(chǔ)操作系統(tǒng)是Red Hat CoreOS。Red Hat CoreOS是一個精簡的RHEL發(fā)行版,專用于容器執(zhí)行的操作系統(tǒng)。
- CRI-O是Kubernetes CRI(容器運行時接口)的實現(xiàn),以支持使用OCI(Open Container Initiative)兼容的運行時。CRI-O可以使用滿足CRI的任何容器運行時,如runC、libpod或rkt。
- Kubernetes是容器調(diào)度編排和管理平臺,關(guān)于它的具體功能我們不再贅述。
- Etcd是一個分布式鍵值存儲,Kubernetes使用它來存儲有關(guān)Kubernetes集群元數(shù)據(jù)和其他資源的配置及狀態(tài)信息。
- 自定義資源定義(CRD)是Kubernetes提供的用于擴展資源類型的接口,自定義對象同樣存儲在Etcd中并由Kubernete管理。
- 容器化服務(wù)(Containerized Service)實現(xiàn)了PaaS功能組件以容器方式在OpenShift上運行。
- 應(yīng)用程序運行時和xPaaS(Runtime and xPaaS)是可供開發(fā)人員使用的基本容器鏡像,每個鏡像都預(yù)先配置了特定的運行時語言或數(shù)據(jù)庫。xPaaS產(chǎn)品是紅帽中間件產(chǎn)品(如JBoss EAP和ActiveMQ)的一組基礎(chǔ)鏡像。OpenShift應(yīng)用程序運行時(RHOAR)是在OpenShift中運行云原生應(yīng)用的程序運行時,包含Red Hat JBoss EAP、OpenJDK、Thorntail、Eclipse Vert.x、Spring Boot和Node.js。
- DevOps工具和用戶體驗:OpenShift提供用于管理用戶應(yīng)用程序和OpenShift服務(wù)的Web UI和CLI管理工具。OpenShift Web UI和CLI工具是使用REST API構(gòu)建的,可以與IDE和CI平臺等外部工具集成使用。
關(guān)于作者:魏新宇,紅帽副首席解決方案架構(gòu)師。在IaaS、PaaS方面有豐富的經(jīng)驗,致力于開源解決方案在企業(yè)中的推廣和應(yīng)用。從售前角度主導(dǎo)了紅帽在金融、汽車行業(yè)的多個PaaS項目。曾就職于華為、IBM、VMware。郭躍軍,目前就職于VMware,擔任Solutions Engineer。曾于紅帽擔任PaaS咨詢顧問、AWS顧問服務(wù)團隊擔任云架構(gòu)咨詢顧問,熟悉私有云和公有云生態(tài)。從2015年接觸容器技術(shù)開始,一直奮戰(zhàn)在PaaS建設(shè)一線,參與了很多OpenShift項目的競標、PoC、咨詢和落地實施,幫助很多企業(yè)實現(xiàn)了數(shù)字化轉(zhuǎn)型。
本文摘編自《OpenShift在企業(yè)中的實踐:PaaS DevOps 微服務(wù)》(第2版),經(jīng)出版方授權(quán)發(fā)布。