Openshift首個支持企業級 Java 的 PaaS 平台,支持 JEE6 與 JBoss 和其 Eclipse 集成開發環境以及 Maven 和 Jenkins 自動化。使用 OpenShift 的人數及社區人數在不斷增長。OpenShift基於Kubernetes,增加哪兒些功能?有什么區別? |
Openshift的web console采用node.js 與angularJS開發,支持實時推送,如下示例
OpenShift Container Registry 自動管理鏡像的版本,ImageStream包含所有鏡像的原數據,但ImageStream不包含Image數據。
使用Image Stream的目的是方便地將一組相關聯的鏡像進行整合管理和使用。
Openshift默認為用戶定義了一系列開箱即用的Image Stream。
查看Image Stream對象
oc get is -n openshift
原生支持Pipeline的Build實現CI/CD過程
Jenkins Plugin能直接觸發openshift的構建和部署過程, 同時最吸引的特點是:
支持流水線Pipeline這種模式,便於在同一集群的多個項目(對應開發,測試,生產)環境或者多個集群(對應開發集群,Stage集群,生產集群)中進行發布。
流水線支持自定義不同的階段,每個階段完成不同的任務,比如可以定義階段為: CI環境部署->Stage環境部署->Prd部署
一條流水線支持包含多個微服務,針對項目中包含多個微服務,一旦定制好流水線,就可以重復運行
Openshift集成EFK(Elasticsearch, Fluentd and Kibana),實現應用程序日志聚合功能。從Openshift 3.7版本開始,可以選擇部署Hawkular metrics或Prometheus做系統監控. 集成Source control management (SCM),創建BuildConfig。
Openshift容器平台內置Git server的,也可以部署Gitlab。
基於RBAC體系管理用戶權限, 支持identity providers. 由於群集上運行的每個容器都與service accounts相關聯,因此可能將secrects與這些service accounts相關聯,並使它們自動關聯到容器。這使基礎結構能夠管理提取和推送Image的secrects,生成和部署組件,還允許應用程序代碼輕松利用這些secrects。開發人員(系統的客戶端)通常從客戶端程序進行 REST API 調用,例如或通過瀏覽器到 Web 控制台,並使用 OAuth 承載令牌進行通信。基礎結構組件(如節點)使用由系統生成的客戶端證書,包含他們的身份。在容器中運行的基礎結構組件使用關聯的令牌及其service account連接到 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之前就有了)
Openshift的Router本質是基於Haproxy實現的,最終實現負載均衡。
對於中小企業沒有容器平台研發能力,建議還是選擇Openshift. 有研發能力的選擇Kubernetes, 更加靈活定制開發。如果應用Kubernetes最新特性,就不選Openshift平台,Openshift中Kubernetes版本更新沒有那么快。Openshift還是有一定學習曲線,但官方文檔還算詳細。OpenShift 作為企業級容器平台,打開從 PaaS 到 DevOps 和微服務的大門.
本文地址:https://www.linuxprobe.com/openshift-kubernetes-new.html