OpenShift介绍
OpenShift是红帽Red Hat公司基于开源的云平台,是平台即服务(PaaS),是一种容器应用平台。允许开发人员构建、测试和部署云应用。该系统是在k8s核心之上添加工具,从而实现更快的应用开发、部署及扩展。
在OpenShift上可以进行开发、测试、部署、运维全流程,实现高度的自动化,满足企业中的应用持续集成和交付及部署的需求,同时也满足企业对于容器管理(docker)、容器编排(k8s)的需求。
Openshift底层的支持
OpenShift是基于主流的容器技术Docker和K8S构建的开源云平台。在Docker成为市场主流的技术发展时,OpenShift迅速推出市场上第一个基于Docker及k8s的容器PaaS(应用云平台)的解决方案。
- 容器引擎:Docker提供了稳定、可靠及高效的运行环境。
- 容器编排:Kubernetes提供了集群管理、高可用、安全、持续集成等容器编排组件,满足容器集群所需的调度、网络、存储、性能及安全等需求。
OpenShift支持的语言
Go,Node.js,Ruby,Python,Java,PHP,Perl。
OpenShift功能
- 容器引擎:docker;
- 容器编排:kubernetes
- 应用开发框架及中间件:Java、Python、Tomcat、MySQL、PHP、Ruby、MongoDB和JBoss等中间件;
- 应用及服务目录:用户可一键部署各类应用及服务;
- 自动化流程及工具:内置自动化流程工具S2I(Source to Image),用户可完成代码编译、构建和镜像发布;
- 软件定义网络:提供OpenVSwitch,实现跨主机共享网络及多租户隔离网络模式;
- 性能监控及日志管理:内置Prometheus监控功能,用户可以通过Grafana仪表板上实时显示应用;
- 多用户接口:提供友好的UI、命令行工具(oc,类似于k8s的kubectl以及RESTful API,基本与k8s兼容);
- 自动化集群部署及管理:通过Ansible实现集群的自动化部署,为集群的自动化扩容提供接口。
OpenShift与K8S的区别
1)概念:OpenShift是PaaS(平台即服务),K8S是CaaS(容器即服务)。OpenShift内置了Kubernetes。OpenShift底层以Docker作为容器引擎驱动,以Kubernetes作为容器编排引擎组件。
2)部署:OpenShift可以安装在RHEL(Red Hat Enterprise Linux)和RHELAH(Red Hat Eneterprise Linux Atomic Host)、CentOS和Fedora上;K8S最好在Unbuntu、Fedora和Debian上运行,可部署在任何主要的IaaS上,如IBM、AWS、Azure、GCP和阿里云等云平台上。
3)Rollout:OpenShift可以基于Ansible这种专有安装程序使用最少的配置参数进行安装;K8S大多数基于Rancher Kubernetes Everywhere(RKE)或kops等安装程序进行安装。
4)WEB UI:OpenShift的Web UI有一个登录页面,这个UI不可以管理集群,但是可以可视化服务器、项目和集群角色;K8S的可视化界面需要单独安装,需要通过kube proxy访问,将本地机器的端口转发到集群的管理服务器,没有登录页面,需要手动创建承载令牌从而提供身份验证和授权。
5)网络:OpenShift提供了开箱即用的本机网络解决方案,即OpenvSwitch,它提供三种不同的插件;K8S没有本机网络解决方案,但提供可供第三方网络插件使用的接口。
OpenShift与k8s的相同点
OpenShift集成了原生的k8s作为容器编排组件,提供容器集群的管理,为业务应用可以提供:
- 容器调度:根据业务的要求,快速部署容器到达指定的目标转态;
- 弹性伸缩:应用可以快速的扩缩容pod的实例数量;
- 异常修复:在容器实例发生异常时,集群可以自动发现问题、处理并恢复应用服务的状态;
- 持久化卷:为集群中的不同机器上的容器提供持久化卷的对接功能;
- 服务发现:可以提供负载均衡及服务发现功能;
- 配置管理:为业务应用提供灵活的配置管理和分发规则。