OpenShift實現PaaS平台的搭建

2021-09-24 03:16:29 字數 1959 閱讀 7689

openshift是乙個非常有前途的私用paas解決方案,它可以減少從專案開始到自動構建應用和部署的時間,它支援絕大多數的web架構,將成為基於docker的私有paas平台領域的參照。

openshift是乙個私有的paas(platform-as-a-service)解決方案,主要用來在容器中搭建、部署以及執行應用程式。它是基於apache 2.0許可的開源軟體, 並且發行了兩個版本, 乙個是社群版, 乙個是企業版。

從2023年7月開始,openshift就己經著力於研究乙個非常出色的專案,該專案是將技術架構和與docker、kubernetes整合到一起(現在這是一件很常見的事)。

一年前啟動這個專案對於openshift來說是乙個大膽而且充滿風險的的決策。確實如此,當時雲平台的競爭處於白熱化的巔峰時期,而此時openshift就決定冒著風險啟動這樣乙個非常重要的重建專案,這個風險主要來自於他們需要停止新特性的開發並妥協舊版本之間的相容性問題。但是現在,我們相信他們作了乙個正確的決定。

到目前為止,社群版本聯合了86名github上(github是紅帽上10個最活躍專案之一)的開發志願者。在12個月中己經進行了16次的迭代,並且剛剛發行了第一版。

儘管這個方案主要是由紅帽在推動,但它非常依賴kubernetes(**於google)。由此引發了到底由誰來支配和主導的問題,該問題依賴於兩個公司之間的協作和版本基準,google開發出新特性後會發生什麼?他們會關注kubernetes還是openshift?很顯然,這個問題還沒有答案。

但是,google的技術支援部門己經確認,由兩家公司同時主導只會給openshift帶來更多益處。它將成為比docker企業版更具竟爭力的產品(機器、組建和群)。

openshift v3提供了3種來自動構建應用的方法。

當登錄檔有新的應用映像版本發布或者應用配置有了更新時,openshift 3還允許定義乙個自動的部署策略。

為了完成這些構建和部署特性,openshift 3提供了把它自己的應用藍圖定義成用json或yaml格式的模板檔案的功能。這些藍圖描述了應用的架構拓撲和容器的部署策略。下面的圖表描述了在open****中,如何為3層應用將模板的不同元件進行組合的。

在「模板」中組合元件,一定程度上繼承了kubernetes的概念,需要記住以下主要的物件。

通過它的多重部署機制和設定自身「藍圖」的能力,openshift第三版適用於大多數的複雜應用架構。

openshift 3的架構可以作為單機模式部署(使用docker映象「openshift/origin」),也可以作為分布式模式部署。在隨後的案例當中,用了兩種伺服器角色,主伺服器和節點。

「主伺服器」節點的功能是:

「主伺服器」依賴於基於etcd的分布式目錄,主要用來提供配置共享和服務發現。

「節點」主要用來作為pods的宿主和執行容器(應用和登錄檔)。

架構是分布式的、可擴充套件的和具有彈性的。但是平台自身暫時還不支援自動擴充套件能力:目前可提供的和底層伺服器的容量計畫只能通過手動調整。

可通過自身的rest api、cli、web portal來訪問和管理平台。

openshift 3在介於「平台即服務」和「容器即服務」的世界間架起了乙個有趣的橋,紅帽提出了乙個大膽的解決方案和乙個最先進的架構,我們非常感謝「藍圖」的規格格式,來定義架構的需求格式和部署的編排。

在beta 3版本中,openshift平台並沒有強烈關注平台的可操作性,暫時並不建議將它應用在生產環境中,但是使用者的各種問題是可以在路線圖中找到的。

我們相信在openshift 3中建模乙個應用將會是乙份新的工作,它需要新的技能,以便可以提出適當的問題,比如:如何組織容器?是否應該使用路由或服務?如何處理資料(一致性、複製、備份)?如何管理多重租用?如何整合開發和部署軟體工廠?

總而言之,openshift是乙個非常有前途的私用paas解決方案,它可以減少從專案開始到自動構建應用和部署的時間,它支援絕大多數複雜的web架構,即使是資料的管理和外部服務的整合還沒有得到完全應用。

我們相信openshift 3對一切都盡在掌握,它將成為基於docker的私有paas平台領域的參照。

Openshift日誌管理

通常採用efk進行openshift集群日誌管理。efk集群 elasticsearch fluentd 和 kibana 的組合 那麼如果需要將openshift日誌發給外部系統呢,當然有很多方法,比如通過flentd或者elasticsearch傳送。下面介紹通過fluentd傳送日誌給外部日誌...

OpenShift 使用自帶registry

獲取docker registry位址 首先需要知道docker registry 的 route oc get route all namespaces grep registry docker registry default.router.default.svc.cluster.local 新...

openshift日誌管理 續

前文提到可以通過fluentd將日誌發給syslog server,而要使用該功能需要用到fluent plugin remote syslog 1.1外掛程式,如何確認你安裝的fluentd是否包含此外掛程式呢,可按照如下方式操作。用fluentd映象ose logging fluentd執行乙個...