Openshift是一個開源的容器雲平臺,底層基於當前容器的事實標準編排系統Kubernetes和docker引擎,企業能夠基於此平臺搭建內部Paas平臺,貫穿CI/CD流程,提升企業IT效率,擁抱DevOps和敏捷開發。html
PaaS(Platform as a Service,平臺即服務)最先是在雲計算領域被提出。以下圖所示,將企業IT服務分爲九層,傳統自建數據中心九層設施都須要企業本身維護,成本極高。而云計算架構就至關於把九層架構中的底層一部分外包給雲計算服務提供商,根據外包的層次不一樣,分爲IaaS(Infrastructure as a Service,基礎設施即服務),PaaS,SaaS(Software as a Service)三層。node
IaaS 層爲基礎設施運維人員服務、提供計算、存儲、網絡以及其餘硬件資源,雲平臺使用者能夠在上面部署和運行包括操做系統和應用程序在內的任意軟件,無需再爲基礎設施的管理而分心。linux
PaaS 層爲應用開發人員服務,提供支撐應用運行所需的軟件運行時環境,相關的工具與服務,如數據庫服務、日誌服務、監控服務等,讓應用開發者能夠專一於交付業務價值的代碼而無需關心應用所需的基礎環境與工具。git
SaaS 層爲通常用戶(最終用戶)服務,提供了一套完整可用的軟件系統,讓通常用戶無需關心技術細節,只需經過瀏覽器、應用客戶端的方式就能使用部署在雲上的應用服務。SaaS 產品好比客戶關係管理系統、郵件、虛擬桌面、通訊、遊戲等。
github
Kubernetes是一個開源容器編排引擎,用於自動化容器化應用程序的部署,擴展和管理。 Kubernetes的基本概念包括:docker
OKD是Kubernetes的發行版,針對持續應用程序開發和多租戶部署進行了優化。OKD在Kubernetes之上添加了開發人員和運營工具,以便爲小型和大型團隊實現快速的應用程序開發,輕鬆部署和擴展以及長期生命週期維護。
OKD是嵌入了Red Hat OpenShift中的上游Kubernetes發行版,並經過安全性和其餘集成概念進行擴展。 OKD在github和文檔中也稱爲Origin。數據庫
OpenShift v3是一個分層系統,旨在儘量準確地公開底層Docker格式的容器鏡像和Kubernetes概念,重點是幫助開發人員輕鬆組合應用程序。例如,安裝Ruby,推送代碼和添加MySQL。
其中,docker提供了打包和建立基於linux的輕量容器鏡像的抽象;Kubernetes提供了集羣管理以及在多臺主機上編排容器的功能。OKD提供瞭如下功能 :瀏覽器
Openshift 實際上由三部分組成,核心部分實現容器的調度是封裝的 Kubernetes, 除此以外還有一個內置的鏡像倉庫(Image Registry),這個倉庫是可選的,Openshift 也能夠配置使用 Dockerhub 或者企業本身的鏡像倉庫,最外層部分是一個友好的 Web 界面,用於展現和操做 Openshift 的資源。
以下圖所示,Openshift 要成爲一個完整的數字化平臺須要依賴於兩個外部系統,一個代碼庫,一個是持續集成服務,事實上這兩個外部服務也是能夠跑在 Openshift 裏面的。右邊的灰色矩形就是 Openshift 的主要架構了,它的上層是一個路由(Router),用於 DNS 解析和轉發,確保用戶可以調用到 Openshift 集羣中的服務。中間部分是跑在 RHEL 操做系統上的 Kubernetes 集羣,側面是外部存儲服務,由於集羣裏的計算單元是漂浮的,因此一般 Kubernetes 集羣只提供計算能力,數據持久外須要依賴外部的好比說 S3,EBS 等雲服務商提供的存儲服務。最下層一樣也是由雲服務商提供的基礎設施服務。安全
okd引用了kubernetes的pods概念。pods是指在同一臺主機上運行的一個或多個容器,它是定義、開發和部署的最小單位。 每一個pod都分配有本身的內部IP地址,所以擁有其整個端口空間,pod中的容器能夠共享其本地存儲和網絡。
pod的生命週期能夠在容器退出時結束,也能夠在容器退出後保留pods以方便訪問容器日誌。
pod在運行過程當中沒法被修改,當須要修改時,須要先中止pod再根據修改後的配置文件和鏡像從新建立pod。pod退出時不會保留狀態,所以通常經過更高級的控制器管理pods而不是用戶直接管理。網絡
https://www.duyidong.com/2017/06/14/kubernetes-and-openshift/
官網連接:
https://www.openshift.com/
https://access.redhat.com/documentation/en-us/openshift_container_platform/4.1/html/architecture/architecture
https://docs.okd.io/latest/architecture/index.html