什么是openshift


Openshift是一個開源的容器雲平台,底層基於當前容器的事實標准編排系統Kubernetes和docker引擎,企業可以基於此平台搭建內部Paas平台,貫穿CI/CD流程,提高企業IT效率,擁抱DevOps和敏捷開發。

什么是Paas

PaaS(Platform as a Service,平台即服務)最早是在雲計算領域被提出。如下圖所示,將企業IT服務分為九層,傳統自建數據中心九層設施都需要企業自己維護,成本極高。而雲計算架構就相當於把九層架構中的底層一部分外包給雲計算服務提供商,根據外包的層次不同,分為IaaS(Infrastructure as a Service,基礎設施即服務),PaaS,SaaS(Software as a Service)三層。

  • IaaS 層為基礎設施運維人員服務、提供計算、存儲、網絡以及其他硬件資源,雲平台使用者可以在上面部署和運行包括操作系統和應用程序在內的任意軟件,無需再為基礎設施的管理而分心。

  • PaaS 層為應用開發人員服務,提供支撐應用運行所需的軟件運行時環境,相關的工具與服務,如數據庫服務、日志服務、監控服務等,讓應用開發者可以專注於交付業務價值的代碼而無需關心應用所需的基礎環境與工具。

  • SaaS 層為一般用戶(最終用戶)服務,提供了一套完整可用的軟件系統,讓一般用戶無需關心技術細節,只需通過瀏覽器、應用客戶端的方式就能使用部署在雲上的應用服務。SaaS 產品比如客戶關系管理系統、郵件、虛擬桌面、通信、游戲等。

什么是Kubernetes

Kubernetes是一個開源容器編排引擎,用於自動化容器化應用程序的部署,擴展和管理。 Kubernetes的基本概念包括:

  • 一個或多個工作節點(worker node)負責工作負載
  • 一個或多個管理節點(master node)負責管理工作負載
  • 將容器封裝在名為Pod的部署單元,使用Pod為容器提供額外的元數據並且提供在單個部署實體中對多個容器進行分組的功能
  • 創建特殊的資源。例如,服務表示一組Pod和訪問策略,該訪問策略允許容器沒有特定的ip地址也能連接服務。復制控制器(Replication controllers)是另一種用於控制同一時間的Pod副本數量的特殊資源,可以使用此功能自動擴展應用程序以適應其當前需求。

什么是OKD

OKD是Kubernetes的發行版,針對持續應用程序開發和多租戶部署進行了優化。OKD在Kubernetes之上添加了開發人員和運營工具,以便為小型和大型團隊實現快速的應用程序開發,輕松部署和擴展以及長期生命周期維護。
OKD是嵌入了Red Hat OpenShift中的上游Kubernetes發行版,並通過安全性和其他集成概念進行擴展。 OKD在github和文檔中也稱為Origin。

openshift層次結構

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 等雲服務商提供的存儲服務。最下層同樣也是由雲服務商提供的基礎設施服務。

Pods

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM