OpenShift 是红帽 Red Hat 公司基于开源的云平台,是平台即服务(PaaS),是一种容器应用平台。允许开发人员构建、测试和部署云应用。该系统是在 K8S 核心之上添加工具,从而实现更快的应用开发、部署及扩展。
在 OpenShift 上可以进行开发、测试、部署、运维全流程,实现高度的自动化,满足企业中的应用持续集成和交付及部署的需求,同时也满足企业对于容器管理(Docker)、容器编排(K8S)的需求。
Openshift 是首个支持企业级 Java 的 PaaS 平台,支持 JEE6 与 JBoss 和其 Eclipse 集成开发环境以及 Maven 和 Jenkins 自动化。
OpenShift (OKD) 是基于主流的容器技术 Docker 和 K8S 构建的开源云平台。OpenShift 是 PaaS(平台即服务),K8S是 CaaS(容器即服务)。OpenShift 内置了Kubernetes。OpenShift 底层以 Docker 作为容器引擎驱动,以Kubernetes 作为容器编排引擎组件。
容器引擎:Docker 提供了稳定、可靠及高效的运行环境。
容器编排:Kubernetes 提供了集群管理、高可用、安全、持续集成等容器编排组件,满足容器集群所需的调度、网络、存储、性能及安全等需求。
容器引擎: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 是 PaaS(平台即服务),K8S 是 CaaS(容器即服务),OpenShift 内置了Kubernetes。OpenShift 底层以 Docker 作为容器引擎驱动,以 Kubernetes 作为容器编排引擎组件。
部署:OpenShift 可以安装在 RHEL(Red Hat Enterprise Linux)和 RHELAH(Red Hat Eneterprise Linux Atomic Host)、CentOS 和 Fedora上;K8S 最好在 Unbuntu、Fedora 和 Debian上运行,可部署在任何主要的 IaaS 上,如 IBM、AWS、Azure、GCP 和阿里云等云平台上。
Web Ul:OpenShift 的 Web UI 有一个登录页面,这个 UI 不可以管理集群,但是可以可视化服务器、项目和集群角色;K8S 的可视化界面需要单独安装,需要通过 kube proxy 访问,将本地机器的端口转发到集群的管理服务器,没有登录页面,需要手动创建承载令牌从而提供身份验证和授权。
网络:OpenShift 提供了开箱即用的本机网络解决方案,即 OpenvSwitch,它提供三种不同的插件;K8S 没有本机网络解决方案,但提供可供第三方网络插件使用的接口。
OpenShift 集成了原生的 K8S 作为容器编排组件,提供容器集群的管理,为业务应用可以提供:
一、集群安装改动
OpenShift 4 提供了一个安装程序配置的基础设施,允许安装程序控制 AWS 安装过程的所有区域。此功能可在几分钟内从头开始配置集群。
用户配置的环境使管理员能够通过填写清单文件简单地在任何平台上进行部署。它还为安装程序提供用户配置环境中所有主机的所有连接凭据。
二、操作系统内核改变
在 OpenShift v3.x 中,我们使用了 Red Hat Atomic OS,它本质上是一个不可变的 Red Hat 安装,安装了最少的工具,为基于容器的工作负载提供了一个理想的平台。这仍然需要单独修补和管理到集群。在 v4 中,选择的操作系统将是 Red Hat CoreOS,它与 Atomic 有许多相似之处,因为它是不可变的并且面向容器,但是它与集群紧密耦合,并且主机操作系统的所有配置都通过集群进行管理,包括版本它运行的 RHCOS。这消除了单独管理底层主机的开销,并使集群管理员能够在需要时使用集群中称为 MachineConfigs 的资源类型配置主机操作系统。
三、增加了Kubernetes Operators
Operators 指的是部署、打包和管理 Kubernetes 应用程序的方法。操作符是 OpenShift 4 的新功能之一,有助于管理 Kubernetes 上的应用程序。通过允许代码直接与 Kubernetes 系统接口,它有助于更动态、更高效地执行工作。
四、Web 界面变化
新的 Web 界面,它分为两个部分:开发人员和管理员。集群配置现在都保存在集群中并由集群管理员管理。