Kubernetes与OpenShift有什么区别? - DZone Cloud


OpenShift是由Red Hat开发的容器化软件解决方案。他们的主要产品是OpenShift容器平台,这是由Kubernetes管理的平台即服务(PaaS)。它是用Go和AngularJS编写的,并且有Apache许可证。
OpenShift Origin是Red Hat基于开源的云平台,允许开发人员构建,测试和部署云应用程序。该系统在Kubernet核心之上添加工具,以实现更快的应用程序开发,轻松部署和扩展。
该平台除了可扩展外,还支持Go,Node.js,Ruby,Python,PHP,Perl和Java,允许用户添加对其他语言的支持。关于可扩展性,该平台可以自动或手动扩展容器化应用程序。

基础设施
虽然两者都基于Linux,但每个产品都在不同的环境中运行:
Kubernetes在其可运行的操作系统方面更加灵活。但是,包管理器是RPM,这意味着Linux发行版。因此最好在Fedora,Ubuntu或Debian上运行它。Kubernetes可以部署在任何主要的IaaS平台上,例如AWS,Azure和GCP。
OpenShift可以安装在Red Hat Enterprise Linux(RHEL)和Red Hat Enterprise Linux Atomic Host(RHELAH)以及Fedora和CentOS上。OpenShift Dedicated允许在云中创建自己的集群,特别是基于Amazon Web Services。

Rollout
这两种产品在推出方面都很复杂:
Kubernetes运行平台的多样性意味着有无数的解决方案可以在本地创建Kubernetes集群。大多数都基于Rancher Kubernetes Everywhere(RKE)或kops等安装程序,Kubernetes的安装程序将在AWS上推出OpenShift。
OpenShift旨在避免在首次推出后需要额外的组件。因此,它配备了基于Ansible的专有安装程序,可以使用最少的配置参数安装OpenShift。

网络UI
通过基于Web的用户界面管理集群的能力相比,OpenShift和Kubernetes之间存在很大差异。
Kubernetes的仪表板必须单独安装,需要通过kube代理访问,以将本地机器的端口转发到集群的管理服务器。此外,它没有登录页面,但您需要手动创建承载令牌以提供身份验证和授权。所有这些复杂性导致Web UI对于真正的日常管理工作而言不是很有价值。
OpenShift的Web控制台有一个登录页面,可以轻松访问,甚至可以让您通过表单创建和更改大多数资源。虽然您无法通过Web管理集群,但您可以可视化服务器,项目和集群角色。

集成镜像注册表
使用Kubernetes,您可以设置自己的Docker注册表,但没有集成镜像注册表的概念。
OpenShift附带了一个集成的镜像注册表,可以与Docker Hub或Red Hat一起使用。它甚至还有一个注册表控制台,您可以在其中搜索与群集中的项目相关的镜像和镜像流的信息。

Jenkins 
虽然Kubernetes中不存在该概念,但您可以部署自己的自定义Jenkins镜像。生成的工件是上传到镜像存储库的docker镜像。
OpenShift使用Pipeline构建,这是一种源到镜像构建的形式,它引用包含Jenkins的镜像,而Jenkins又监视ImageStreamsTags。当需要更新时,它可以启动Jenkins构建。

联网
Kubernetes没有本机网络解决方案,但提供可供第三方网络插件使用的接口
OpenShift有一个开箱即用的本机网络解决方案OpenvSwitch,它提供三种不同的插件。

哪一个更好?​​​​​​​
两者都是开源软件平台,旨在促进容器编排和应用程序开发。它们使得以简单易管理的方式部署和管理容器化应用程序成为可能。OpenShift Web控制台使其非常有用,允许直接通过它执行80%以上的任务。
虽然两者都有类似的核心(毕竟OpenShift内置了Kubernetes),OpenShift通过其开箱即用的功能使安装更容易。安装Kubernetes通常需要交钥匙解决方案或托管Kubernetes集群。
您选择的系统将取决于您的系统要求以及开发过程的关键灵活性或良好的Web界面。