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
来源:oschina
链接:https://my.oschina.net/u/3585265/blog/4740409