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