天天看點

Openshift與Kubernetes的差別

Openshift首個支援企業級 Java 的 PaaS 平台,支援 JEE6 與 JBoss 和其 Eclipse 內建開發環境以及 Maven 和 Jenkins 自動化。使用 OpenShift 的人數及社群人數在不斷增長。OpenShift基于Kubernetes,增加哪兒些功能?有什麼差別?

Openshift與Kubernetes的差別

1.Openshift 的 Web console

Openshift的web console采用node.js 與angularJS開發,支援實時推送,如下示例

Openshift與Kubernetes的差別

2.內建容器管理與ImageStream

OpenShift Container Registry 自動管理鏡像的版本,ImageStream包含所有鏡像的原資料,但ImageStream不包含Image資料。

使用Image Stream的目的是友善地将一組相關聯的鏡像進行整合管理和使用。

Openshift預設為使用者定義了一系列開箱即用的Image Stream。

#檢視Image Stream對象

#oc get is -n openshift

3. Native CI/CD factory原生支援Pipeline的Build實作CI/CD過程

Jenkins Plugin能直接觸發openshift的建構和部署過程, 同時最吸引的特點是:

  • 支援流水線Pipeline這種模式,便于在同一叢集的多個項目(對應開發,測試,生産)環境或者多個叢集(對應開發叢集,Stage叢集,生産叢集)中進行釋出。
  • 流水線支援自定義不同的階段,每個階段完成不同的任務,比如可以定義階段為: CI環境部署->Stage環境部署->Prd部署
  • 一條流水線支援包含多個微服務,針對項目中包含多個微服務,一旦定制好流水線,就可以重複運作
Openshift與Kubernetes的差別

4. 日志與監控

Openshift內建EFK(Elasticsearch, Fluentd and Kibana),實作應用程式日志聚合功能。從Openshift 3.7版本開始,可以選擇部署Hawkular metrics或Prometheus做系統監控. 內建Source control management (SCM),建立BuildConfig。

5. 版本控制內建

Openshift容器平台内置Git server的,也可以部署Gitlab。

6. Security安全

基于RBAC體系管理使用者權限, 支援identity providers. 由于群集上運作的每個容器都與service accounts相關聯,是以可能将secrects與這些service accounts相關聯,并使它們自動關聯到容器。這使基礎結構能夠管理提取和推送Image的secrects,生成和部署元件,還允許應用程式代碼輕松利用這些secrects。開發人員(系統的用戶端)通常從用戶端程式進行 REST API 調用,例如或通過浏覽器到 Web 控制台,并使用 OAuth 承載令牌進行通信。基礎結構元件(如節點)使用由系統生成的用戶端證書,包含他們的身份。在容器中運作的基礎結構元件使用關聯的令牌及其service account連接配接到 API。

7.Resources and API

有一些對象與Kubernates共享:

Pods

Namespaces(OpenShift中叫projects)

Deployment config

Services

Routes

Persistent volumes and Persistent volume claims

ConfigMaps與Secrets

一些Openshift加入對象

Images (例如Docker鏡像)

Image streams

Templates (應用的藍圖,類似Helm)

Build config(應用或service如何建構)

Routes  (類似Kubernetes ingress,在Ingresses引入Kubernetes之前就有了)

8. 路由與負載均衡

    Openshift的Router本質是基于Haproxy實作的,最終實作負載均衡。

結論

    對于中小企業沒有容器平台研發能力,建議還是選擇Openshift. 有研發能力的選擇Kubernetes, 更加靈活定制開發。如果應用Kubernetes最新特性,就不選Openshift平台,Openshift中Kubernetes版本更新沒有那麼快。Openshift還是有一定學習曲線,但官方文檔還算詳細。OpenShift 作為企業級容器平台,打開從 PaaS 到 DevOps 和微服務的大門.

消息中間件Rabbitmq(01)

消息中間件Rabbitmq(02)

消息中間件Rabbitmq(03)

消息中間件Rabbitmq(04)

消息中間件Rabbitmq(05)